快速设置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》

原文地址:https://www.cnblogs.com/Jaryer/p/13601577.html