因为爬虫的需要,所以需要多个user-agent,之前一直也是这样用的,后来接触到了fake_useragent这个包后,一切都变得那么简单简单了,fake_useragent是一个集成了市面上大部分的user-agent,可以指定浏览器,也可随机生成任意一个
在工作中进行爬虫时,经常会需要提供User-Agent,如果不提供User-Agent,会导致爬虫在请求网页时,请求失败,所以需要大量User-Agent。如何生成合法的User-Agent?
使用fake-useragent库就可以解决该问题。
安装:pip install fake-useragent 模块下载

这里简单做个生成指定浏览器的请求头
from fake_useragent import UserAgent # fake_useragent模块 user-agent的获取
ua = UserAgent() # 实例化,实例化时需要联网但是网站不太稳定
print(ua.ie) # 随机打印一个 ie 浏览器的头
print(ua.opera)
print(ua.chrome)
print(ua.google)
print(ua.firefox)
print(ua.safari)
print(ua.random) # 随机打印 User-Agent
ua.ie
# Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US);
ua.msie
# Mozilla/5.0 (compatible; MSIE 10.0; Macintosh; Intel Mac OS X 10_7_3; Trident/6.0)'
ua['Internet Explorer']
# Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US)
ua.opera
# Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11
ua.chrome
# Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2'
ua.google
# Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13
ua['google chrome']
# Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11
ua.firefox
# Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1
ua.ff
# Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0.1
ua.safari
# Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25
# and the best one, random via real world browser usage statistic
ua.random
而在工作中常用的则是ua.random
我是这样来使用的
from fake_useragent import UserAgent
import requests
ua = UserAgent()
headers = {
'User-Agent': ua.random
}
url = 'https://www.baidu.com/'
response = requests.get(url, headers=headers)
print(response.status_code)
》》》 200
url定义要爬取网址,然后headers是user-agent,cook是cookie,cookie就是你登录一个网页时提交的密码,密码向网页提交的登陆数据,简单来说,cookie就是制作一个假身份骗过海关。 利用get函数提交url、cookies和headers,然后接下来就可以肆无忌惮爬取你想要的数据了。
当然网站会有很多的反爬机制,需要随机应变,至于为什么要使用我写的这个办法爬取网站,是因为很多网站都会对Headers的User-Agent进行检测,还有一部分网站会对Referer进行检测(一些资源网站的防盗链就是检测Referer)。如果遇到了这类反爬虫机制,可以直接在爬虫中添加Headers,将浏览器的User-Agent复制到爬虫的Headers中;或者将Referer值修改为目标网站域名。对于检测Headers的反爬虫,在爬虫中修改或者添加Headers就能很好的绕过。
作者:朝畫夕拾
链接:https://www.jianshu.com/p/74bce9140934
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。