码迷,mamicode.com
首页 > 编程语言 > 详细

python爬虫Scrapy框架之中间件

时间:2019-01-23 20:31:52      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:pytho   ensp   重启   tar   方法   text   get   middle   nload   

Downloader Middleware处理的过程主要在调度器发送requests请求的时候以及网页将response结果返回给spider的时候, 所以说下载中间件是结余Scrapy的request/response处理的钩子, 用于修改Scrapy request和response.技术分享图片

编写自己的下载器中间件 :

  编写下载器中间件, 需要定义下一或者多个方法的python类

  新建一个关于爬取httpbin.org网站的项目

scrapy startproject httpbintest 
cd httpbintest
scrapy genspider example example.com

  写一个简单的代理中间件实现ip伪装

  创建好爬虫之后将httpbin.py中的parse方法改成:

    def parse(self, response):
        print(response.text)

  然后命令行启动爬虫: scrapy crawl httpbin

技术分享图片

  在下面看到"origin": "114.250.88.66"

  在查看自己的ip

技术分享图片

  编写中间件实现ip伪装, 在middleares.py中:

class ProxyMiddleare(object):
    logger = logging.getLogger(__name__)
    def process_request(self,request, spider):
        self.logger.debug("Using Proxy")
        request.meta[proxy] = http://127.0.0.1:9743
        return None

  然后再settings.py中配置文件开启下载中间件的功能, 默认是关闭的

技术分享图片

  重启爬虫

  在日志中可以看到定义的中间件已经移动,而且查看origin的ip地址也已经变成了日本的ip地址

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

python爬虫Scrapy框架之中间件

标签:pytho   ensp   重启   tar   方法   text   get   middle   nload   

原文地址:https://www.cnblogs.com/dong-/p/10311114.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!