美文网首页我用Python
Python爬虫学习(二十)Download Middlewar

Python爬虫学习(二十)Download Middlewar

作者: 弃用中 | 来源:发表于2018-01-21 23:19 被阅读60次

    以下为Scrapy的整体架构:


    可以看到,Download Middleware位于Scrapy Engine和Downloader之间,来来往往的Requests和Responses都会经过它,我们可以写属于自己的Downloader Middleware,通过它设置比如代理,请求头等等。

    要实现我们自己的Download Middleware,


    至少得要实现这三个中的某一个。

    下面就演示一下设置代理:

    在工程的middlewares.py文件中加入

    class ProxyMiddleware(object):
        def process_request(self,request, spider):
            request.meta['proxy'] = 'http://127.0.0.1:1080'
            return None
    

    我在本机安装了代理软件,它会在本地1080端口上创建 HTTP 代理服务,也就是代理为 127.0.0.1:1080.

    要想"激活"一个download middleware还需要设置一下:


    spider的内容为:

    # -*- coding: utf-8 -*-
    import scrapy
    class QuotesSpider(scrapy.Spider):
        name = 'quotes'
        start_urls = ['http://httpbin.org/ip']
    
        def parse(self, response):
            print(response.text)
    

    接下来,就是运行了咯:


    查看一下:


    更多内容请看:https://doc.scrapy.org/en/latest/topics/downloader-middleware.html

    以上。

    相关文章

      网友评论

        本文标题:Python爬虫学习(二十)Download Middlewar

        本文链接:https://www.haomeiwen.com/subject/xdyqaxtx.html