【发布时间】:2020-11-13 00:25:09
【问题描述】:
我正在尝试从不同网站上抓取有关某些产品的信息。这是我的程序的结构:
product_list = [iPad, iPhone, AirPods, ...]
def spider_tmall:
self.driver.find_element_by_id('searchKeywords').send_keys(inputlist[a])
# ...
def spider_jd:
self.driver.find_element_by_id('searchKeywords').send_keys(inputlist[a])
# ...
if __name__ == '__main__':
for a in range(len(inputlist)):
process = CrawlerProcess(settings={
"FEEDS": {
"itemtmall.csv": {"format": "csv",
'fields': ['product_name_tmall', 'product_price_tmall', 'product_discount_tmall'], },
"itemjd.csv": {"format": "csv",
'fields': ['product_name_jd', 'product_price_jd', 'product_discount_jd'], },
})
process.crawl(tmallSpider)
process.crawl(jdSpider)
process.start()
基本上,我想为product_list 中的所有输入运行所有蜘蛛。现在,我的程序只运行一次所有蜘蛛(在这种情况下,它为 iPad 完成了这项工作)然后出现 ReactorNotRestartable 错误并且程序终止。有人知道如何解决吗?
另外,我的总体目标是多次运行蜘蛛,输入不一定是列表。它可以是 CSV 文件或其他文件。任何建议将不胜感激!
【问题讨论】:
标签: python selenium web-scraping scrapy web-crawler