更加高级的来伪装浏览器
在学习高级伪装浏览器技术之前,我们必须要对Headers有足够的了解。
头部字段的基本格式为:"字段名:字段值"
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept字段主要是来表示浏览器支持内容的类型
text/html表示的是html文档
application/xhtml+xml表示的是xhtml文档
application/xml表示的是xml文档
q代表的是权重系数,介于0-1之间
这一行字段信息代表浏览器从左到又支持内容类型.。
Accept-Encoding: gzip, deflate
Accept_Encode表示的浏览器压缩编码有哪些
gzip是常见的压缩编码的一种
deflate是一种无损数据压缩算法
这一行字段信息代表浏览器能支持的压缩编码类型
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Language表示的浏览器能够支持的语言类型
zh-CN表示的是简体中文
zh表示的是中文
en-US表示英文(美国)
这一行字段信息代表浏览器能支持的语言类型
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0
User-Agent表示的用户代理,服务器可以通过该字段识别浏览器的类型、以及电脑的型号、操作系统、浏览器支持的排版引擎
Connection: close
connection表示的是浏览器与服务器连接的类型
keep-alive表示的是持久性连接
close表示的是单方面关闭连接,让连接断开。
1.实例
import urllib.request
import urllib.error
import http.cookiejar
url = "http://news.163.com/world/"
heads = {"Host":"news.163.com", "User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0",
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language":"zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
"Accept-Encoding":"gzip, deflate", "Connection":"keep-alive", "Upgrade-Insecure-Requests":"1"}
cookjar = http.cookiejar.CookieJar()
head = []
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookjar))
for key, value in heads.items():
item = (key, value)
head.append(item)
opener.addheaders = head
urllib.request.install_opener(opener)
data = urllib.request.urlopen(url).read()
handler = open("E:/Python/file/1.html", "wb")
handler.write(data)
handler.close()