今天记录的是比较基础的python爬虫(版本:python3.6)中的伪装浏览器爬虫,其原理是通过header键值对的修改进而达到伪装浏览其访问网页的效果,下面以百度首页为例子。 浏览器输入www.baidu.com进入百度首页,按下F12进入开发者界面,转到下方图片指定的位置: 可以看到下面有几个包,随便点击一个,找到Header中的Request Headers下的User-Agent,便是需要的关键信息。 下面直接上代码:
#伪装浏览器爬虫 from urllib import request import re url = r"http://www.baidu.com/" #构造请求头信息 header = { #电脑User-Agent "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36", } #创建自定义请求对象 #反爬虫机制1:判断用户是否是浏览器访问 #可以通过伪装浏览器进行访问 req = request.Request(url, headers=header) response = request.urlopen(req).read().decode() pat = r"<title>(.*?)</title>" #通过正则表达式进行数据清洗 data = re.findall(pat, response) print("网页title:",data[0])运行便可以看到PC端运行的结果为:
网页title: 百度一下,你就知道把header换成以下语句:
header = { #手机User-Agent "User-Agent": "Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36" }运行结果为:
网页title: 百度一下这是手机端的运行结果,从而便达到了伪装浏览器的效果。另外User-Agent的值并不唯一,可以网上查找不同的值。