User-Agent
其值为一些搜索引擎,代表是谁在访问此网页
一般我们需要通过设置此值来伪装成浏览器,从而绕过一些反爬措施
注意:如果需要频繁的爬取一个网页,最好弄一个User-Agent的列表来随时切换,从而避免被网站检测到
Accept-Encoding
一般我们请求网页的时候,服务器有可能会返回压缩过的数据给我们,这个时候只有解压才能获取我们想要的数据。
一般可以通过数据包里的数据看出服务器是否压缩,以哪种方式压缩。
-
response headers中的 content-encoding
-
request header中的 accept-encoding
content-encoding是指网页以哪种压缩方式传输数据给你
accept-encoding是告诉服务器,我可以解压这些格式的数据
-
网页一般会 根据 你发送的 accept-encoding 来 决定用什么格式 (content-encoding)来传给你
如果 headers 里面不加这个字段,就是告诉服务器不需要压缩。这样服务器就会将网页的源码本身直接发给你,但这样会造成网络传输的流量变大。
requests会自动解压,所以不加accept-encoding字段也会有默认值gzip, deflate,只有设置字段accept-encoding的值为空的时候,才会获取没压缩过的数据
注意:一般当我们请求网页的时候,返回的是乱码,就可以看看是不是自己并不能以 accept-encoding里的某种方式解压,而将此方式传给了服务器,从而造成了乱码。
referer
headers中的referer代表你是从哪个页面进入到此页面的。比如我们是从页面1进入到页面2的,那么页面2的referer就是页面1。
如果直接在浏览器输入网址进入,referer就会不见,因为我们不是从其他页面进入此页面的
有的网站会根据referer进行反爬
注意:使用referer也会引起一些不好的结果,比如你点了一个链接,请求的时候referer就会携带当前的URL,如果你当前的url中有一些隐私信息,那种就会发送给请求的链接了
accept
代表客户端能够接收的数据类型,类型中的先后顺序代表客户端接受的先后顺序
Accept-Language
指浏览器用来展示返回信息所优先选择的语言
Connection
表示是否需要持久连接,如果需要,设置值为 keep-alive,服务器就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间
Host
请求的web服务器域名地址
Cookie
发送请求时,会将保存在该域名下的所有cookie值一起发送给浏览器