爬虫:你知道,Python官网有多少Python版本吗???(windows)
本帖最后由 夏煜哥 于 2022-4-10 10:32 编辑1.思路
Python官网的Python版本,全部都有属于自己的网页。为了腾出更大的空间,Python官网的下载通道只下载,把详细的资料则给了版本的网页,通过a标签(超链接)连接。而a的内容,就是版本 + 发售日期。所以,思路就是. . .(https://www.python.org/downloads/windows/)
1.使用requests.get()/urllib.request.urlopen()获取下载通道html
2.使用bs4找出正确a标签(配合if,for)
3.保存为.xlsx
2.实战
【1】requests
--headers:
众所周知,Python官网不像鱼C,会检查headers,所以要先解决headers。
我有几个User-Agent,分享一下:
uas = ['Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.81 Safari/537.36', 'Mozilla/5.0 (Windows NT 7.0; Win32; x32) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.81 Safari/537.36', 'Mozilla/5.0 (Windows NT 7.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.81 Safari/537.36', 'Mozilla/5.0 (Windows NT 11.0; Win32; x32) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.81 Safari/537.36', 'Mozilla/5.0 (Windows NT 10.0; Win32; x32) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.81 Safari/537.36']
别问我怎么搞来这么多User-Agent,其实他都是列表的第一个改过来的,把参数改了一下。
而headers字典,看到我的“us”列表,大家应该会这么写:
import random as r
headers = {
'user-agent' : uas}
当然,也可以用choice(uas)代替。
--get:
装了requests的get()
from requests import *
resp = get('https://www.python.org/downloads/windows/', headers = headers)
新手专用urllib.request.urlopen()
from urllib.requestsimport *
req = Request('https://www.python.org/downloads/windows/',headers = headers)
resp = urlopen(req)
--编码:
装了requests的:
resp.encoding = 'utf-8'
页:
[1]