Fake-useragentライブラリを使用して、User-Agentをランダムに交換

1492 ワード

このライブラリの使用方法は、ドキュメントを参照してください.https://github.com/hellysmile/fake-useragent
ステップ1:
pip install fake-useragent

ステップ2: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())

ステップ3: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}

できます.