夏煜哥 发表于 2022-4-9 20:40:57

爬虫:你知道,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]
查看完整版本: 爬虫:你知道,Python官网有多少Python版本吗???(windows)