导入代理列表
把随机的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的过程,以上教程如果觉得对你有帮助的话,请点击推荐转发给更多人学习!
推荐阅读: