使用fake-useragent库来实现随机更换User-Agent
程序员文章站
2022-05-09 11:17:37
...
该库的使用方法见文档:https://github.com/hellysmile/fake-useragent
第一步:
pip install fake-useragent
第二步:在middlewares中配置下载中间件。
class RandomUserAgentMiddleware(object):
#随机更换user_agent
def __init__(self, crawler):
super(RandomUserAgentMiddleware,self).__init__()
self.ua = UserAgent()
self.ua_type = crawler.settings.get("RANDOM_UA_TYPE","random")#为了随机获得浏览器类型
@classmethod
def from_crawler(cls, crawler):
return cls(crawler)#导入crawler,从而获取其他的配置文件里的数据
def process_request(self,request,spider):
def get_ua():
return getattr(self.ua,self.ua_type)#获取ua的ua_type属性,也就是获得random
request.headers.setdefault('User-Agent',get_ua())
第三步:在settings中配置
RANDOM_UA_TYPE = "random"
USER_AGENT ='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
DEFAULT_REQUEST_HEADERS = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
'User-Agent':USER_AGENT,
}
如果不是在scrapy中使用,那么:
from fake_useragent import UserAgent
ua = UserAgent()
headers = {'User-Agent':ua.random}
即可。