众所周知,直接通过命令行scrapy crawl yourspidername可以启动项目中名为yourspidername的爬虫。在python脚本中可以调用cmdline模块来启动命令行:
$ cat yourspider1start.py
from scrapy import cmdline
# 方法 1
cmdline.execute('scrapy crawl yourspidername'.split())
# 方法 2
sys.argv = ['scrapy', 'crawl', 'down_info_spider']
cmdline.execute()
# 方法 3, 创建子进程执行外部程序。方法仅仅返回外部程序的执行结果。0表示执行成功。
os.system('scrapy crawl down_info_spider')
# 方法 4
import subprocess
subprocess.Popen('scrapy crawl down_info_spider')
其中,在方法3、4中,推荐subprocess
subprocess module intends to replace several other, older modules and functions, such as:
os.system
os.spawn*
os.popen*
popen2.*
commands.*
通过其返回值的poll方法可以判断子进程是否执行结束
我们也可以直接通过shell脚本每隔2秒启动所有爬虫:
$ cat star