Scrapy:一个项目中的多个爬虫

时间:2016-07-07 06:44:36

标签: python scrapy

我编写了一个使用代理scrapy的网络爬虫。由于我总是需要一个随机代理池来避免被禁止,所以我决定编写另一个抓取一个提供免费可用IP的网站的爬虫。

目前,我在两个独立的scrapy项目中有两个蜘蛛,它们具有不同的设置,管道和中间件。每次我开始抓取过程时,我都需要首先搜索IP,将它们导出到一个文件,然后转到另一个爬虫的根目录并将IP读入setting.py.我想知道是否可以将两个蜘蛛组合成一个单独的项目,这样我只需要运行一个命令来启动整个爬行过程。

非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以在一个项目中拥有2个蜘蛛,但无论如何您都必须运行2个不同的命令才能进行爬网。你可以做的是创建一个独立启动过程的脚本。

import subprocess
p1=subprocess.Popen(["scrapy","crawl", "spider"])
p2=subprocess.Popen(["scrapy","crawl", "spider2"])

您甚至可以向其传递参数,例如您引用的IP

p=subprocess.Popen(["scrapy","crawl", "spider", "-a", "website='Newton.ai'"])