在python工程中执行爬虫
scrapy一般使用方式,都是通过编写一个Spider,然后通过命令行执行指令,来开启一个爬虫并执行,例如:
1 | scrapy runspider quotes_spider.py -o quotes.json |
这种方式不太适合大型项目以及定制化爬取,所以需要想办法调用scrapy接口,来实现代码中调用。
一种常用做法是使用scrapyd或者scrapy-cloud,这里我们都不使用。
使用CrawlerProcess
scrapy.crawler.CrawlerProcess
会创建一个Twisted reactor,设置好日志格式和shutdown handlers。Crawler本身也是使用该类启动的爬虫
下方是一个简单例子:
1 | import scrapy |
使用CrawlerRunner
scrapy.crawler.CrawlerRunner
类提供了更多可控性,不会创建reactor,也不会干扰现有的reactor。
1 | from twisted.internet import reactor |
在python工程中执行爬虫