zoukankan      html  css  js  c++  java
  • 快速设置Scrapy随机的IP代理

    导入代理列表

    把随机的IP列表定义在settings.py文件里面

    PROXIES=['http://180.119.43.106:4228', 'http://106.56.246.104:4237', 'http://118.79.56.240:4278',
             'http://223.215.175.132:4272', 'http://115.221.10.97:2316', 'http://182.87.239.182:4250',
             'http://113.138.170.34:4659', 'http://182.246.158.172:4263', 'http://183.166.138.236:4248',
             'http://114.237.230.132:2444', 'http://175.175.150.202:4211', 'http://124.112.214.13:4286',
             'http://114.239.172.198:4236', 'http://110.19.188.168:6410', 'http://182.99.234.158:1659',
             'http://182.108.168.170:4234', 'http://49.84.32.34:4203', 'http://121.226.45.229:8736',
             'http://115.220.38.159:4208', 'http://118.79.9.64:6996']
    
    

    以上这些代理,在你们看到文章的时候,可能已经不可用了,你们需要自己去寻找可用的代理IP。

    你也可以把这个代理列表写成一个请求,可以从其它地方获取到代理ip。

    添加代理中间件

    在middleware文件里面添加一个代理中间件

    import random
    class PorxyMiddleware(object):
        #设置Proxy
        def __init__(self,ip):
            self.ip=ip
        @classmethod
        def from_crawler(cls,crawler):
            return cls(ip=crawler.settings.get('PROXIES'))
    
        def process_request(self,request,spider):
            ip =random.choice(self.ip)
            request.meta['proxy'] = ip
    

    启用中间件

    在settings文件里面的下载器中间键启动自己定义的类

    DOWNLOADER_MIDDLEWARES = {
        'dome1.middlewares.ProxyMiddleware':543
    }
    
    

    测试

    可以看到,我设置随机IP代理之后也是可以访问成功的

    以上就是Scrapy设置代理IP的过程,以上教程如果觉得对你有帮助的话,请点击推荐转发给更多人学习!

    推荐阅读:

    《快速设置你的UserAgent》

  • 相关阅读:
    关于格林尼治时间(GMT)和DateTime相互转换的分享
    Mybatis多表操作
    Mybatis动态SQL
    Mybatis连接池及事务
    Mybatis基本使用
    Mybatis基本入门搭建
    面试刷题29:mysql事务隔离实现原理?
    面试刷题28:如何写出安全的java代码?
    面试刷题27:程序员如何防护java界的新冠肺炎?
    面试刷题26:新冠攻击人类?什么攻击java平台?
  • 原文地址:https://www.cnblogs.com/Jaryer/p/13601577.html
Copyright © 2011-2022 走看看