一、命令行运行爬虫

1、编写爬虫文件 baidu.py

Python爬虫:Scrapy从脚本运行爬虫的5种方式!_Python

 

2、运行爬虫(2种方式)

Python爬虫:Scrapy从脚本运行爬虫的5种方式!_Python_02

 

二、文件中运行爬虫

1、cmdline方式运行爬虫

Python爬虫:Scrapy从脚本运行爬虫的5种方式!_Python_03

2、CrawlerProcess方式运行爬虫

Python爬虫:Scrapy从脚本运行爬虫的5种方式!_Python_04

 

3、通过CrawlerRunner 运行爬虫

Python爬虫:Scrapy从脚本运行爬虫的5种方式!_Python_05

三、文件中运行多个爬虫

项目中新建一个爬虫 SinaSpider

Python爬虫:Scrapy从脚本运行爬虫的5种方式!_Python_06

1、cmdline方式不可以运行多个爬虫

如果将两个语句放在一起,第一个语句执行完后程序就退出了,执行到不到第二句

Python爬虫:Scrapy从脚本运行爬虫的5种方式!_Python_07

 

不过有了以下两个方法来替代,就更优雅了

2、CrawlerProcess方式运行多个爬虫

备注:爬虫项目文件为:

scrapy_demo/spiders/baidu.py

scrapy_demo/spiders/sina.py

Python爬虫:Scrapy从脚本运行爬虫的5种方式!_Python_08

 

此方式运行,发现日志中中间件只启动了一次,而且发送请求基本是同时的,说明这两个爬虫运行不是独立的,可能会相互干扰

3、通过CrawlerRunner 运行多个爬虫

Python爬虫:Scrapy从脚本运行爬虫的5种方式!_Python_09

 

此方式也只加载一次中间件,不过是逐个运行的,会减少干扰,官方文档也推荐使用此方法来运行多个爬虫

总结

 

Python爬虫:Scrapy从脚本运行爬虫的5种方式!_Python_10