如何同时在不同的输入网站上多次运行Scrapy爬虫,并写入不同的输出文件?

2024-04-18 14:12:53 发布

您现在位置:Python中文网/ 问答频道 /正文

有人知道我如何在不同的网站上运行同一个刮刀200多次,每个网站都有各自的输出文件吗?通常在scray中,当从命令行运行输出文件时,可以通过键入-o filename.json.来指示输出文件


Tags: 文件命令行json键入网站filename刮刀scray
2条回答

我也在做类似的事情。以下是我所做的:

  1. 像平常一样编写爬虫程序,但要确保实现feed exports。我让feed导出将结果直接推送到S3桶。另外,我建议您接受网站作为脚本的命令行参数。(Example here
  2. 设置scrapyd运行蜘蛛
  3. 使用scrapyd-client将蜘蛛打包并部署到scrapyd
  4. 现在,有了网站列表,只需对scrapyd进程的每个URL发出一个curl命令。在

我已经用上面的策略浅刮了200万个域名,我做了不到5天。在

多种方式:

  • Create a ^{}删除具有可配置参数的项,如运行scrapy crawl myspider -a output_filename=output_file.txt。output_filename作为参数添加到spider,现在您可以从如下管道访问它:

    class MyPipeline(object):
        def process_item(self, item, spider):
            filename = spider.output_filename
            # now do your magic with filename
    
  • 您可以run scrapy within a python script,然后对输出项执行操作。

相关问题 更多 >