使用fake-useragent库来实现随机更换User-Agent

该库的使用方法见文档: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}

即可。

你可能感兴趣的:(使用fake-useragent库来实现随机更换User-Agent)