gpt4 book ai didi

python - Scrapy:无法在 Jupyter Notebook 脚本中重新运行,报告 ReactorNotRestartable

转载 作者:太空狗 更新时间:2023-10-30 01:37:00 25 4
gpt4 key购买 nike

我的scrapy代码是这样的:

import scrapy
from scrapy.crawler import CrawlerProcess

class MovieSpider(scrapy.Spider):
name = "movies"
start_urls = [
'https://movie.douban.com/subject/25934014/',
'https://movie.douban.com/subject/25852314/',
]

def parse(self, response):
title = response.css('div#wrapper div#content h1 span::text').extract_first()
year = response.css('div#wrapper div#content h1 span.year::text').extract_first()
yield {
'url': response.url,
'title': title,
'year': year,
}

我像这样运行它
process = CrawlerProcess({
'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
'FEED_FORMAT': 'json',
'FEED_URI': 'movie.json',
'FEED_EXPORT_ENCODING':'utf-8'
})

process.crawl(MovieSpider)
process.start() #

这是 docs中推荐的方式.

问题是,在我运行上述脚本后,我无法再次运行它。 Jupyter 笔记本返回错误 ReactorNotRestartable
enter image description here

如果我在jupyter中重新启动内核,第一次运行就可以了。

我认为问题是在 Scrapy crawl from script always blocks script execution after scraping 中说明的

我也许可以通过使用他们的代码来解决这个问题。然而,他们的代码对于这么小的事情来说是相当复杂的,与 CrawlerProcess相差甚远。文档中推荐的方式。

我想知道是否有更好的方法来解决这个问题?

我尝试添加 process.stop()在脚本的末尾。它没有帮助。

最佳答案

使用笔记本时,我相信您必须遵循 Running Scrapy as a Script 中描述的方法之一。 .

关于python - Scrapy:无法在 Jupyter Notebook 脚本中重新运行,报告 ReactorNotRestartable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42242100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com