Headers配置

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值一起发送给浏览器

注意:如果需要频繁的爬取一个网站,此值建议不断的切换来避免反爬措施

原文地址:https://www.cnblogs.com/yanruizhe/p/15122342.html