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

使用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}

即可。