Python构建随机请求头


通过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的方式来伪装我们的爬虫程序,希望对大家有用。

 

 

你可能感兴趣的:(python)