Тестирование Scrapy пауков с Jupyterlab - PullRequest
0 голосов
/ 15 апреля 2020

Каким-то образом я не могу найти правильный способ разработки пауков-скрабов (особенно RUN / TEST им) с помощью Jupyterlab. Я пытался использовать CrawlerProcess, как описано в их документации, и некоторые сообщения stackoverflow:

import scrapy            
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings

class BlogSpider(scrapy.Spider):
    name = 'blogspider'
    start_urls = ['https://blog.scrapinghub.com']

    def parse(self, response):
        for title in response.css('.post-header>h2'):
            yield {'title': title.css('a ::text').get()}

        for next_page in response.css('a.next-posts-link'):
            yield response.follow(next_page, self.parse)


process = CrawlerProcess(get_project_settings())

process.crawl(BlogSpider)
process.start() # the script will block here until the crawling is finished  

Однако он запускается только ОДИН РАЗ, и каждый раз, когда я пытаюсь запустить его снова, выдается ошибка ReactorNotRestartable . Каков рекомендуемый способ перезапустить этот процесс или повторно протестировать паука? Я имею в виду, что при разработке паука мне кажется логичным, что его нужно будет много тестировать, поэтому я не понимаю, почему это так сложно - может быть, я все делаю неправильно?

Я видел некоторые сообщения Stackoverflow по этому вопросу, но они либо предложили вышеупомянутый подход, либо тот, который не работал.

Любая помощь будет принята с благодарностью.

...