爬虫浏览器的伪装技术

爬虫浏览器的伪装技术

一、     三种反爬机制和应对方法:

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)

 


你可能感兴趣的:(PythonSpider)