阅读背景:

改写scrapy中的middlewares组件,建立user-agent池和IP代理池达到反爬的效果

来源:互联网 

建立user-agent池:在request的headers设置User-Agent

class RandomUserAgent(object):
    def __init__(self,user_agent):
        self.user_agent = user_agent

    @classmethod
    def from_crawler(cls,crawler):
        # 从settings中加载USER_AGENT的值
        return cls(
            user_agent=crawler.settings.getlist('USER_AGENT')
        )

    def process_request(self, request, spider):
        # 在process_request中设置User-Agent的值
        request.headers.setdefault('User-Agent',random.choice(self.user_agent))cl



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: