博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
scrapy中使用 IP 代理
阅读量:5076 次
发布时间:2019-06-12

本文共 933 字,大约阅读时间需要 3 分钟。

在 scrapy 中使用 ip 代理需要借助中间件的功能

首先在settings 中设置好中间件,中间件优先级数字越小越先被执行

'DOWNLOADER_MIDDLEWARES':{      'spider.spider.middlewares.ProxyMiddleWare':542,   'spider.spider.middlewares.SelenuimDownloaderMiddleware':543        }

然后编写中间件,拦截请求设置代理

class ProxyMiddleWare(object):        def process_request(self, request, spider):                """ 对 request 加上proxy"""        proxy = RedisClient().pop_proxy().decode('utf-8')        print('---------this is request ip ----------:'+ proxy)        request.meta['proxy'] = proxy    def process_response(self, request, response, spider):                """ 对返回的 response 处理"""        # 如果返回的 response 状态不是 200, 重新生成当前的 request对象        if response.status != 200:            proxy = RedisClient().pop_proxy().decode('utf-8')            print('this is response ip:'+ proxy)            # 对当前 request 加上代理            return request        return response

 

转载于:https://www.cnblogs.com/jcjc/p/11125341.html

你可能感兴趣的文章
centos redis 安装过程,解决办法
查看>>
IOS小技巧整理
查看>>
WebDriverExtensionsByC#
查看>>
我眼中的技术地图
查看>>
lc 145. Binary Tree Postorder Traversal
查看>>
sublime 配置java运行环境
查看>>
在centos上开关tomcat
查看>>
重启rabbitmq服务
查看>>
正则表达式(进阶篇)
查看>>
无人值守安装linux系统
查看>>
【传道】中国首部淘宝卖家演讲公开课:农业本该如此
查看>>
jQuery应用 代码片段
查看>>
MVC+Servlet+mysql+jsp读取数据库信息
查看>>
黑马程序员——2 注释
查看>>
用OGRE1.74搭建游戏框架(三)--加入人物控制和场景
查看>>
转化课-计算机基础及上网过程
查看>>
android dialog使用自定义布局 设置窗体大小位置
查看>>
ionic2+ 基础
查看>>
互联网模式下我们更加应该“专注”
查看>>
myeclipse集成jdk、tomcat8、maven、svn
查看>>