use*_*618 7 python scrapy web-scraping scrapy-spider
我在启动同一个蜘蛛的多个实例时遇到困难.我想像1个url for 1 spider实例一样运行它.我必须处理50k网址,为此我需要为每个网址启动单独的实例.在我的主蜘蛛脚本中,我设置了closepider timeut 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()
Run Code Online (Sandbox Code Playgroud)
它完全运行第一个url,bur之后第二个url通过时它给出了以下错误:
raise error.ReactorNotRestartable()
ReactorNotRestartable
Run Code Online (Sandbox Code Playgroud)
请建议我该怎么做才能让它运行同一个蜘蛛的多个实例.此外,我正在考虑使用线程一次启动多个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()
Run Code Online (Sandbox Code Playgroud)