我用Python

Python爬虫学习(二十)Download Middlewar

2018-01-21  本文已影响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

以上。

上一篇 下一篇

猜你喜欢

热点阅读