Python爬取百度搜索的标题和真实URL的代码和详细解析

网页爬取主要的是对网页内容进行分析,这是进行数据爬取的先决条件,因此博客主要对爬取思路进行下解析,自学的小伙伴们可以一起来学习,有什么不足也可以指出,都是在自学Ing,回归正题今天我们要来爬取百度搜索相关的网页。
首先我们打开度娘,进行搜索
首页网址为:https://www.baidu.com/s?wd=%E6%95%B0%E6%8D%AE&rsv_spt=1&rsv_iqid=0x93e76171000312b4&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=tb&rsv_sug3=7&rsv_sug1=6&rsv_sug7=101&rsv_sug2=0&rsv_btype=i&inputT=778&rsv_sug4=1116
搜索图
接着我们点击第二页可以看到网址变更为:https://www.baidu.com/s?wd=数据&pn=10&oq=%E6%95%B0%E6%8D%AE&tn=baiduhome_pg&ie=utf-8&usm=2&rsv_idx=2&rsv_pq=f30ff13f00000cf7&rsv_t=4810mKq3P%2BTmHDnRmpF1eE9P0PvsFC5IpcU%2BHHNq51IATNTDhmKSM1%2Bbr%2BiWFPGYJALE
第二页

可以看出搜索栏的数据由wd=数据控制,接着进行第三页、四页、五页点击可以看到pn从第二页的10变成20、30、40,我们可以进行验证:
url简化
删掉多余的后缀变为https://www.baidu.com/s?wd=数据&pn=0,可以看到输入wd=数据&pn=0时候为第一页,可以多试一些数,发现只要小于10的数,即为首页
因此可以得出 页数=页数*10-10为搜索对应页码的pn码
可以写出相应代码获取不同页面:

def get_url(wd,num):
 
    s = requests.session()
    #第1页为小于10的数字 10为第2页,20为第三页,30为第四页,以此类推
    num=num*10-10
    for i in range(-10, num, 10):
        url = 'https://www.baidu.com/s'# 点击界面第二页可以看到网页变化截取关键部分 https://www.baidu.com/s?wd=python&pn=10 
        params = {
   
            "wd": wd,
            "pn": i,
        }
        r = s.get(url=url, headers=headers, params=params)
        print("返回状态码:",r.status_code) #可以看对应Js 正常网页访问时候 status状态码 为200
        time.sleep(1 + (
  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值