python爬虫之反爬伪装
UA:User-Agent(请求载体的身份标识)
UA检测:门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器,说明该请求是一个正常请求(即用户发起的请求)。但是,如果检测到请求的载体身份标识不是属于某一款浏览器,则表示该请求为不正常的请求(爬虫),则服务器端就很有可能拒绝该次请求。
UA伪装:让爬虫对应的请求载体身份标识伪装成某一浏览器
如何寻找浏览器的User-Agent:
(1)右键点击需爬取的浏览器界面,点击检查;
(2)依次点击网络,搜索框空格,名称随便一行;显示出标头,往下滑找到User-Agent。
UA伪装爬取程序如下:
import requests
if __name__ == "__main__":
# UA伪装:将对应的User-Agent封装到一个字典中
headers = {
'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36 Edg/116.0.1938.76'
}
url = 'https://www.sogou.com/web'
# 处理url携带的参数:封装到字典中
kw = input('enter a word:')
param = {
'query':kw
}
# 对指定的url发起的请求对应的url是携带参数的,并且请求过程中处理了参数
response = requests.get(url=url,params=param,headers=headers)
page_text = response.text
fileName = kw+'.html'
with open(fileName,'w',encoding='utf-8') as fp:
fp.write(page_text)
print(fileName,'保存成功!!!')