1. 程式人生 > >Scrapy爬蟲框架下執行爬蟲的方法

Scrapy爬蟲框架下執行爬蟲的方法

python sta 方法 args setting crawler split req .cn

  在使用Scrapy框架進行爬蟲時,執行爬蟲文件的方法是 scrapy crawl xxx ,其中 xxx 是爬蟲文件名。

  但是,當我們在建立了多個文件時,使用上面的命令時會比較繁瑣麻煩,我們就可以使用下述方法同時完成爬蟲文件的執行。

  第一種,在scrapy框架下建立一個運行文件,如 run.py ,在文件中建立一個列表,列表為爬蟲的執行命令,最後通過循環執行 execute() 函數完成執行。執行時使用 python run.py 命令即可。如下面的代碼所示

from scrapy.cmdline import execute
spiders = [
    ‘scrapy crawl liepin‘,
    ‘scrapy crawl lagou‘
]

if __name__ == ‘__main__‘:
    for i in spiders:
        execute(i.split())

  第二種,我們還可以使用自定義項目命令 COMMANDS_MODULE 添加自己的命令完成執行。

  在爬蟲文件所屬的文件夾同級目錄下創建任意目錄,如command,在文件夾下創建命令文件,如crawlall.py,此文件的名稱就是我們自定義的命令。例子代碼如下

from scrapy.commands import ScrapyCommand
from scrapy.utils.project import get_project_settings

class Command(ScrapyCommand):
	requires_project = True

	def run(self,args,opts):
		spiders_list = self.crawler_process.spiders.list()
		for name in spiders_list:
			self.crawler_process.crawl(name,**opts.__dict__)

		self.crawler_process.start()

  在scrapy項目的配置文件 settings.py 中添加 COMMANDS_MODULE = ‘項目名稱.目錄名稱‘ 。至此命令添加完成,最後執行命令 scrapy xxx 進行執行(此處的xxx就是上面建立的文件名,如 scrapy crawlall )。

  參考:http://www.cnblogs.com/lei0213/p/7900340.html

Scrapy爬蟲框架下執行爬蟲的方法