从当前脚本添加scrapy中间件

时间:2016-03-04 01:48:43

标签: python scrapy web-crawler

我已经在一个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设置?

1 个答案:

答案 0 :(得分:0)

我已经使用可以在其errback后面使用的扭曲callback来解决此问题,并在callback抛出exception时处理错误。

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