zoukankan      html  css  js  c++  java
  • scrapy代理

    网上有好多proxy代理,下面的中间件完成scrapy的代理的爬虫

    demo github链接

    class ProxyMiddleware():
        def __init__(self, proxy_url):
            self.logger = logging.getLogger(__name__)
            self.proxy_url = proxy_url
    
        def get_random_proxy(self):
            try:
                response = requests.get(self.proxy_url)
                if response.status_code == 200:
                    proxy = response.text
                    return proxy
            except requests.ConnectionError:
                return False
    
        def process_request(self, request, spider):
           # print(request.meta.get('retry_times'))
           # print(request.meta)
           # if request.meta.get('retry_times'):
            proxy = self.get_random_proxy()
            if proxy:
                uri = 'https://{proxy}'.format(proxy=proxy)
                self.logger.debug('使用代理 ' + proxy)
                request.meta['proxy'] = uri
    
        @classmethod
        def from_crawler(cls, crawler):
            settings = crawler.settings
            return cls(
                proxy_url=settings.get('PROXY_URL')
            )
    

    下面时原理图:

    这里写图片描述

    数据流

    这里写图片描述

  • 相关阅读:
    我说
    时间管理
    职场自我管理
    html元素不可见的三种方式
    windows查看端口占用情况
    windows下vbs脚本隐藏控制台
    找钥匙问题
    CSS中的偏僻知识点
    竖式谜题
    node库的选择
  • 原文地址:https://www.cnblogs.com/zswbky/p/8454093.html
Copyright © 2011-2022 走看看