在爬虫采集数据的时候,有时会由于网站的反爬虫机制而导致采集失败,此时可以采用伪装请求头的方法。Scrapy是一个开源的Python爬虫框架,它提供了一个简单方便的方法来修改请求头,以伪装成HTTP/1.1。本文将介绍使用Scrapy采集数据时伪装请求头的方法。
Scrapy伪装请求头的方法
Scrapy的基本使用方法非常简单,只需创建一个Scrapy项目,然后编写爬虫,就可以开始采集数据了。使用Scrapy伪装请求头也很容易,只需在Scrapy项目的settings.py文件中添加如下内容:
USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
这个USER_AGENT就是我们要伪装成的头信息,将其设置为一个浏览器的头信息即可。此时采集的请求头就会伪装成HTTP/1.1的头信息,从而达到欺骗网站的反爬虫机制的目的。
HTTP/1.1头信息
HTTP/1.1头信息是HTTP协议的一部分,它包含了很多重要的信息,如Accept、Accept-Encoding、Accept-Language、Referer、User-Agent等等。这些头信息可以让服务器知道客户端的一些基本信息,如客户端使用的浏览器、操作系统等。在伪装请求头的时候,我们可以将其伪装成一个常见浏览器的头信息,从而达到欺骗服务器的目的。
常见浏览器头信息
常见浏览器头信息有很多,如下所示:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Maxthon/4.4.8.2000 Chrome/30.0.1599.101 Safari/537.36
关键词:Scrapy、Python、伪装请求头