• Scrapy爬虫框架下执行爬虫的方法


      在使用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

  • 相关阅读:
    matlab mex中C++内存全局共享和持久化
    算法导论01---到底何为算法(由算法联想到的大学教育)
    在Visual Studio项目中根据系统平台自动引用32或64位的DLL
    POJ2352【树状数组】
    artDialog双击会关闭对话框的修改
    利用AWR 查看SQL 执行计划
    Sql获取数据集中各类型中的最大值(最新值)
    容器常用操作
    运行容器的最佳实践
    两种进入容器的方法
  • 原文地址:https://www.cnblogs.com/lovele-/p/9112882.html
Copyright © 2020-2023  润新知