gpt4 book ai didi

python - Scrapy - 如何启动同一个蜘蛛进程的多个实例?

转载 作者:行者123 更新时间:2023-12-03 20:15:21 25 4
gpt4 key购买 nike

我在启动同一个蜘蛛的多个实例时被卡住了。我想像 1 个蜘蛛实例的 1 个 url 一样运行它。我必须处理 50k 个 url,为此我需要为每个 url 启动单独的实例。在我的主要蜘蛛脚本中,我将 closedpider 超时设置为 7 分钟,以确保我不会长时间爬行。请看下面的代码:

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

for start_url in all_urls:
domain = urlparse.urlparse(start_url).netloc
if domain.startswith('ww'):
domain = domain.split(".",1)[1]

process = CrawlerProcess(get_project_settings())
process.crawl('textextractor', start_url=start_url,allowed_domains=domain)
process.start()

它完全针对第一个 url 运行,之后当传递第二个 url 时,它会出现以下错误:
raise error.ReactorNotRestartable()
ReactorNotRestartable

请建议我应该怎么做才能让它为同一个蜘蛛的多个实例运行。另外,我正在考虑使用线程一次启动多个scrapy实例。这是一个很好的方法吗?

最佳答案

这个怎么样

process = CrawlerProcess(get_project_settings())

for start_url in all_urls:
domain = urlparse.urlparse(start_url).netloc
if domain.startswith('ww'):
domain = domain.split(".",1)[1]
process.crawl('textextractor', start_url=start_url,allowed_domains=domain)

process.start()

关于python - Scrapy - 如何启动同一个蜘蛛进程的多个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33690595/

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