从当前脚本添加 scrapy 中间件

Adding scrapy middleware from current script

我已经在单个 python 脚本中设置了我的 scrapy 爬虫:

import sys
import csv
import scrapy
from scrapy.http import FormRequest
from scrapy.crawler import CrawlerProcess


class MyItem(scrapy.Item):
    test = scrapy.Field()


class Spider(scrapy.Spider):
    start_urls = [
        "blah.com",
    ]

    def parse(self, response):
        blahblah = MyItem()
        # Some Code
        yield blahblah


class crawler:
    def start(self):
        process = CrawlerProcess({
            'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
            'LOG_LEVEL': 'INFO',
            'FEED_FORMAT': 'csv',
            'FEED_URI': 'Output.csv'
        })
        process.crawl(Spider)
        process.start()

app = crawler()
app.start()

这很完美。 现在如何添加一个 scrapy 中间件,例如 process_spider_exception(response, exception, spider) 在此脚本中并通过将其添加到 CrawlerProcess settings?

来使用它

我已经使用扭曲的 errback 解决了这个问题,它可以在它的 callback 后面使用,并在 callback 抛出 exception.[=15 时处理错误=]

相关[问题]:how to scrapy handle dns lookup failed