1、 大部分反爬虫网站会检查用户的”User-Agent”字段。简单的伪装只需要设置好”User-Agent”字段。高相似度的伪装浏览器设置Headers常见字段。
2、 通过获取服务器信息进行反爬。通过使用代理服务器的方式解决。
3、 对于更加复杂的反爬机制的网站,可以运用selenium+PhantomJs联合攻克。
1、 打开fiddler,并打开网页查看相应的Headers信息。
2、 Headers中的常见头信息:
字段名 |
意义 |
Accept |
浏览器支持的内容 |
Text/html |
表示HTML文档 |
Applicat/xhtml+xml |
表示XHTML文档 |
Application/xml |
表示XML文档 |
Q |
代表权重系数,一般在0-1之间 |
Accept-Encoding |
浏览器支持的压缩编码 |
Gizp |
压缩编码 |
Deflate |
无损数据压缩编码 |
Accept-language |
浏览器支持的类型 |
Zh-CN |
中文 |
En-us |
英语 |
En |
图包裹托运 |
User-Agent |
用户代理、服务器可以通过该字段识别出客户端浏览器的类型、版本号、客户端的系统操作、网页排版引擎 |
Mozilla/5.0 |
浏览器名和版本信息 |
WindowsNt6.1 |
客户端操作系统对应信息 |
Gec |
网页排版引擎信息 |
Connecteion |
客户端与服务器的连接类型 |
Keep-alive |
持久性连接 |
Close |
单方面关闭连接 |
Host |
请求的服务器网址 |
Refere |
来源网址 |
参考代码如下:
import urllib.request
import http.cookiejar
#伪装浏览器
headers = {
"Accept":"text/html,Applicat/xhtml+xml,Application/xml;q=0.9,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate",
"Accept-Language":"zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3",
"User-Agent": "Fiddler/5.0.20181.14850 (.NET 4.6.2; WinNT 10.0.17134.0; zh-CN; 4xAMD64; Auto Update; Full Instance; Extensions: APITesting, AutoSaveExt, EventLog, FiddlerOrchestraAddon, HostsFile, RulesTab2, SAZClipboardFactory, SimpleFilter, Timeline)",
"Connection": "keep-alive",
"referer":"http://www.163.com/"
}
url = "https://www.baidu.com/"
cjar = http.cookiejar.CookieJar()
proxy = urllib.request.ProxyHandler({'http':"127.0.0.1:8888"})
opener = urllib.request.build_opener(proxy,urllib.request.HTTPHandler,urllib.request.HTTPCookieProcessor(cjar))
headll = []
for key,value in headers.items():
item = (key,value)
headll.append(item)
opener.addheaders = headll
urllib.request.install_opener(opener)
data = urllib.request.urlopen(url).read()
print(data)