requests实现动态爬取页面
首先,介绍一种反爬机制:UA检测(User-Agent:请求载体的身份标识):
门户网站的服务器会检测对应请求的载体身份标识,如果到该请求的UA为某浏览器,则说明该请求是正常的请求,允许访问;反之,若检测到不是某浏览器(UA只会有两种,浏览器和爬虫),则说明该请求是不正常的,可能会拒绝访问。
那么,就会有对应的反反爬策略:UA伪装:
让爬虫对应的UA伪装成某一款浏览器的UA。
如何伪装,通过headers字典,在里面设置UA值:
# UA伪装
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
}
此外,由于是动态爬取,所以在url中不能设置具体的参数,那就需要处理url携带的参数,封装到字典中:
url = 'https://www.sogou.com/web'
# 处理url携带的参数,封装到字典中
kw = input('enter a word:')
param = {
'query':kw
}
最后可以看到,在控制台输入要搜索的关键字,即可成功爬取: