Здравствуйте. Создавал вопрос, который не смогли решить. Scrapy глохнет при скармливании ему интересных URL. Приведу пример:
from scrapy.spider import Spider
from scrapy.crawler import Crawler
from scrapy import signals
from scrapy.utils.project import get_project_settings
from twisted.internet import reactor
from settings import options
from urlparse import urlparse
class SpiderParse(Spider):
good_address = []
name = 'Spider'
domains = ['adn.com', 'dnr.state.ak.us', 'criminalrecordcheck.info', 'riverbug.terapad.com', 'ala-ism.pansitan.net']
allowed_domains = domains
start_urls = ['http://'+domain for domain in domains]
def parse(self, response):
if response.url in self.start_urls:
self.good_address.append(urlparse(response.url).netloc)
print self.good_address
if __name__ == '__main__':
options = {
'CONCURRENT_ITEMS': 200,
'USER_AGENT': 'Googlebot/2.1 (+http://www.google.com/bot.html)',
'DOWNLOAD_DELAY': 0.5,
'CONCURRENT_REQUESTS': 20,
}
spider = SpiderParse()
settings = get_project_settings()
settings.overrides.update(options)
crawler = Crawler(settings)
crawler.signals.connect(reactor.stop, signal=signals.spider_closed)
crawler.install()
crawler.configure()
crawler.crawl(spider)
crawler.start()
reactor.run()
Если вы запустите этот скрипт, он начнет обрабатывать адреса и...остановится на 3 или 4. Что, в общем-то, нехорошо. Как получить код возврата в любом случае?
P.S. Читал этот вопрос, но он мне не сильно помог (или я чего-то недопонял):
stackoverflow.com/questions/9698372/scrapy-and-res...
P.S.S Домен "criminalrecordcheck.info" не зарегистрирован, но возвращает 200. Почему?