2016-03-04 3 views
2

У меня есть настройки моего Scrapy искателю в одном сценарии 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() 

и это прекрасно работает. Теперь, как добавить в этот скрипт связующее программное обеспечение, такое как process_spider_exception(response, exception, spider) , и использовать его, добавив это к настройкам CrawlerProcess?

ответ

0

Я решил эту проблему с помощью витой errback, который может быть использован позади его callback и обработать ошибку, если callback бросает exception.

Релевантно [вопрос]: how to scrapy handle dns lookup failed