python爬虫学习03

网络爬虫实例教程

自定义参数

当我们在百度搜索东西时,比如你好,会出来一堆结果,查看url链接
在这里插入图片描述

wd=你好 后面的参数是没有什么用的,删掉之后仍然能访问,没有任何影响。
直接把前面的复制过来

import requests

# url = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=%E4%BD%A0%E5%A5%BD'
#直接辅助过来后你好变成了编码后的数据,改回来就可以。
url = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=你好'

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"
}
r = requests.get(url.format(), headers=headers)

print(r.content.decode())

或者说要自定义搜索的内容,就把你好改成{}
定义变量,用input获取搜索文字,

url = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd={}'

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"
}
text = input('请输入要搜索的内容:')
r = requests.get(url.format(text), headers=headers)

print(r.content.decode())

运行后会得到html代码,放到html文件中运行,就能直接打开百度搜索后的页面了。

自定义参数存放在字典

如果参数过多,request给我们提供了方法,相对来说好用,即用字典来传参, 对刚才的代码进行修改,

url = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&'

text = input('请输入要搜索的内容:')
#把url后边的参数删掉,创建一个字典,key就是wd,value值就是text
params = {'wd':text}

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"
}

r = requests.get(url, headers=headers,params=params)
#然后就可以不用跟format了
#get后面跟上字典名
print(r.request.url)
#为了方便验证,就不打印html代码,直接request.url获取链接,运行
#print(r.content.decode())

分析贴吧

实现任意贴吧的爬虫,保存网页到本地。
在百度贴吧,随意找一个,查看总链接, 贴吧stream的链接
https://tieba.baidu.com/f?kw=steam
关键参数还是kw,=后为贴吧名,
当我们查看第二页,网页链接多了两个参数,https://tieba.baidu.com/f?kw=steam&ie=utf-8&pn=50 。
第一个是编码,删除了没有影响,
第二个pn=50,表示这一页是从第50个帖子开始,也就是说每一页都有50个帖子,第一页是从0-49,第二页50-99。如果我们把50改成100,它就变成了第三页,
为了获取贴吧前五页的内容,每一页都数据保存下来放在一个html文件下。具体代码下篇文章。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值