使用fake-useragent库自动生成User-Agent,提升爬虫开发效率
爬虫其实就是一种模拟浏览器行为从而获取所需信息的一种手段,既然要模拟浏览器,那么首先就要模拟浏览器向服务器发送请求的headers。因此在写爬虫程序的时候,我们往往首先会去构造一个请求头,也就是一个headers
字典,就像下面这种形式:
headers = {
'Accept': '*/*',
'Accept-Language': 'en-US,en;q=0.8',
'Cache-Control': 'max-age=0',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36',
'Connection': 'keep-alive',
'Referer': 'http://www.baidu.com/'
}
这其实是一种非常非常基础的反爬手段,也是最容易实现的。如果你的爬虫程序中连请求头都没有,可以说你连网站的页面信息都抓取不到,更别谈获取你想要的更精确的信息了。在请求头里面最重要的信息是User-Agent,我们可以把它理解为浏览器的标识符,设置了User-Agent,我们就成功地伪装成了浏览器了。
但初学者在设置User-Agent的时候,往往会像上面的代码一样,手动赋值。这种弄做法有两个弊端:1.太麻烦,每次写爬虫都要赋值粘贴这么一串字符串,想想都觉得麻烦。1.不灵活,爬虫程序一旦运行起来就会频繁地向服务器发送请求,如果每次都拿着一样的User-Agent找服务器要数据,那么服务器很容易就会把你理解为爬虫程序,然后把你关在小黑屋了……
今天给大家介绍一个Python第三方包,叫做fake-useragent
,他可以为你随机生成不同的User-Agent,省的你再去一次次复制粘贴了,两全其美。我们来看一下如何使用它吧!
首先用pip进行安装:
pip install fake-useragent
使用方法如下:
import requests
from fake_useragent import UserAgent
ua = UserAgent()
headers = {'User-Agent': ua.random}
url = '待爬网页的url'
resp = requests.get(url, headers=headers)
#省略具体爬虫的解析代码,大家可以回去试试
...
关注我公众号【程序员向东】,此公众号专注分享Python、爬虫学习资料和干货,关注后回复【PYTHON】,无套路免费送你一个学习大礼包,包括爬虫视频和电子书~
上一篇: python3使用fake_useragent添加请求头
下一篇: Tomcat 点击劫持漏洞修改