简介
通过User-Agent
构建请求头headers
能够将爬虫伪装,但是有的网站会有反爬技术。会去检查请求头,进而封掉ip地址。所以一个稍微不错的方法就是使用不用的User-Agent
构建请求头,在每次提交网站请求的时候,使用随机请求头迷惑对方。
构造随机请求头
一种比较笨的方法就是去搜集各种User-Agent
构建请求头,写一个随机函数,每次挑选一个User-Agent
。既然这么繁琐的工作,程序员肯定看不下去呀,毕竟人生苦短。于是就诞生了一个fake_useragent
的库,专门用于python爬虫伪装。
首先下载该库:
1 |
pip install fake-useragent |
通过导入该库,查看是否安装成功:
1 |
>>>import fake_useragent |
接下来,我们输入以下代码:
1 2 3 |
from fake_useragent import UserAgent for i in range(5): print(UserAgent().random) |
结果如下:
1 2 3 4 5 |
Mozilla/5.0 (Windows x86; rv:19.0) Gecko/20100101 Firefox/19.0 Mozilla/5.0 (Windows NT 4.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36 Mozilla/5.0 (Microsoft Windows NT 6.2.9200.0); rv:22.0) Gecko/20130405 Firefox/22.0 Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.17 Safari/537.36 Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36 |
首先我们要从fake_useragent
库中导入UserAgent()
,然后调用它的random
就可以获得随机的UserAgent
。除此之外我们还可以获得指定浏览器类型的UserAgent
。代码如下:
1 2 3 4 5 6 |
from fake_useragent import UserAgent print(UserAgent().chrome) print(UserAgent().ie) print(UserAgent().firefox) print(UserAgent().opera) print(UserAgent().safari) |
结果为:
1 2 3 4 5 |
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1623.0 Safari/537.36 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; Media Center PC 6.0; InfoPath.3; MS-RTC LM 8; Zune 4.7) Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20120101 Firefox/29.0 Opera/9.80 (X11; Linux x86_64; U; Ubuntu/10.10 (maverick); pl) Presto/2.7.62 Version/11.01 Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; it-it) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27 |
总结
本文介绍了一种构建随机请求头headers
的方式来伪装我们的爬虫程序,希望对大家有用。
你好,请问csdn的博文采用了GZIP压缩+chunked传输方式,使用request读取下来存盘发现只能解密前几个字节是怎么回事?
header文件很重要,不同网站的构建方式不一样,建议使用fiddler等工具抓包测试