美文网首页我用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