欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用fake-useragent库自动生成User-Agent,提升爬虫开发效率

程序员文章站 2022-05-09 11:17:55
...

爬虫其实就是一种模拟浏览器行为从而获取所需信息的一种手段,既然要模拟浏览器,那么首先就要模拟浏览器向服务器发送请求的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】,无套路免费送你一个学习大礼包,包括爬虫视频和电子书~
使用fake-useragent库自动生成User-Agent,提升爬虫开发效率