日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

scrapy同时运行多个spider

發布時間:2024/4/14 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 scrapy同时运行多个spider 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

scrapy爬蟲的運行通常是通過scrapy crawl spidername 一個個運行的,如有多個spider文件需要批量運行,常見的有兩種方法:
1、使用CrawlProcess實現
2、使用修改crawl源碼+自定義命令的方式實現

本文主要講一下方法2的實現。
思路:1、根據scrapy中crawl命令的源碼,進行相應的修改,并寫一個自己的python文件,相當于定義了一個新命令。
?? ?? 2、還需要使用scrapy添加自定義命令的功能為我們所寫的代碼添加一個自定義命令,然后就可以根據這個自定義命令,運行多個爬蟲文件了。
?? ? ?

1、首先創建一個scrapy項目,并在該項目中創建多個爬蟲文件。
?? ?創建scrapy項目mymultispider
?? ?scrapy startproject mymultispider
?? ?創建三個spider文件myspd1, myspd2, myspd3
?? ?scrapy gensipder -t basic myspd1 sina.com.cn
?? ?scrapy gensipder -t basic myspd2 sina.com.cn
?? ?scrapy gensipder -t basic myspd3 sina.com.cn
?? ?
2、修改crawl源碼
?? ?查看Crawl源碼(可以從scrapy官方的github項目中找到:https://github.com/scrapy/scrapy/blob/master/scrapy/commands/crawl.py),發現crawl命令的源碼文件中,
?? ?Command類下面的run()方法中指定了要運行哪些爬蟲文件,具體通過crawler_process.crawl(spname, **opts.spargs)實現爬蟲文件的運行,spname指的是爬蟲名。
?? ?所以,我們要實現一次運行多個爬蟲文件,關鍵是需要修改run()方法。同時,我們還需要通過crawler_process.spider_loader.list()實現獲取所有的爬蟲文件。
?? ?根據此思路,我們可以修改crawl命令的源碼來建立自己的自定義命令所對應的python源碼。
?? ?
?? ?a、在spiders目錄的同級目錄下創建一個mycmd目錄,并在該目錄中創建一個mycrawl.py,將crawl源碼復制過來,修改run()方法。
?? ?源碼中的run()方法:
?? ??? ?def run(self, args, opts):
?? ??? ??? ?if len(args) < 1:
?? ??? ??? ??? ?raise UsageError()
?? ??? ??? ?elif len(args) > 1:
?? ??? ??? ??? ?raise UsageError('running "scrapy crawl" with more than one spider is no longer supported')
?? ??? ??? ?spname = args[0]
?? ??? ??? ?
?? ??? ??? ?self.crawler_process.crawl(spname, **opts.spargs) #運行爬蟲
?? ??? ??? ?self.crawler_process.start()
?? ?修改為:
?? ??? ?def run(self, args, opts):
?? ??? ??? ?#獲取爬蟲列表
?? ??? ??? ?spd_loader_list = self.crawler_process.spider_loader.list()
?? ??? ??? ?#遍歷各爬蟲
?? ??? ??? ?for spname in spd_loader_list or args:
?? ??? ??? ??? ?self.crawler_process.crawl(spname, **opts.spargs)
?? ??? ??? ??? ?print("此時啟動的爬蟲:"+spname)
?? ??? ??? ?self.crawler_process.start()
?? ??? ??? ??? ?
?? ?在run()方法中先獲取爬蟲列表,然后再依次通過for循環遍歷各爬蟲,遍歷時使用crawler_process.crawl()運行當前得到的spider爬蟲文件,并輸出當前爬蟲文件的信息,便于調試與觀察。
?? ?最后,在該文件的同級目錄下添加一個初始化文件__init__.py 。
?? ?
?? ?
?? ?b、通過需要添加一個自定義命令。
?? ??? ?可以在項目配置文件(setting.py)中進行相應配置,格式:"COMMANDS_MODULE='項目核心目錄.自定義命令源碼目錄'",具體如下:
?? ??? ??? ?COMMANDS_MODULE = 'mymultispd.mycmd'
?? ??? ?隨后,在命令行中進入該項目所在目錄,并輸入scrapy -h,可以查看是否有命令mycrawl 。如果有,就可以使用自定義命令mycrawl啟動所有爬蟲文件了。

轉載于:https://my.oschina.net/u/3767248/blog/1790432

總結

以上是生活随笔為你收集整理的scrapy同时运行多个spider的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩激情视频 | 中文字幕观看视频 | 新天堂av | 综合久久中文字幕 | 久久男人精品 | 国产亚洲精品成人无码精品网站 | 超碰人人人人人人人 | 国自产拍偷拍精品啪啪一区二区 | 狠狠操婷婷 | 香蕉视频黄在线观看 | 91桃色免费视频 | 欧美xxxxxhd| 少妇裸体视频 | 91在线欧美 | 欧美日韩一区二区在线视频 | 欧美精品做受xxx性少妇 | 伊人亚洲天堂 | 少妇特黄a一区二区三区88av | 欧美91精品久久久久国产性生爱 | 国产人妻精品一区二区三 | 日韩免费av片| 国产伦理一区二区三区 | 丰满女人又爽又紧又丰满 | 中国亚洲老头同性gay男男… | 老熟女高潮一区二区三区 | 五月婷六月| 久操精品 | 国产第二页| 欧美亚洲黄色片 | 亚洲视频成人 | 99在线成人精品视频 | 亚洲成人1区 | 欧美日韩精品区别 | 国产人妻久久精品一区二区三区 | 久久机热这里只有精品 | 国产八区 | 亚洲乱码国产乱码精品精的特点 | av免费片 | 超碰免费视 | 天天摸天天添 | 精品亚洲一区二区 | 精品无人区无码乱码毛片国产 | 亚洲字幕在线观看 | 播播网色播播 | 4438x亚洲最大 | 欧美做受高潮 | 国产日韩欧美视频 | 91视频啪啪 | 国产在线免费 | 精品xxx | 妖精视频污 | 国产肉丝在线 | 日本黄色动态图 | 男女做那个的全过程 | 91精品专区| 久久综合激情 | 精品日韩在线视频 | 国产又粗又黄的视频 | 麻豆传媒在线观看视频 | 日韩av中文字幕在线免费观看 | 91成人免费在线观看视频 | 波多野结衣在线观看一区二区 | 欧美v亚洲| 91蜜桃传媒精品久久久一区二区 | 欧美亚洲国产一区二区三区 | 可以看污的网站 | 秋霞av鲁丝片一区二区 | 69人妻精品久久无人专区 | 黄色成人在线免费观看 | 山村大伦淫第1部分阅读小说 | av在线电影网 | 久久久夜色精品亚洲 | 久久艹在线 | 韩国伦理大片 | 免费在线激情视频 | 人妻在线日韩免费视频 | 蜜臀久久99精品久久久久宅男 | 精品 | 右手影院亚洲欧美 | 国产精品大片 | 日韩成人自拍 | 精品无码国产一区二区三区51安 | 亚洲爱视频 | 日本一区二区免费在线 | 国产 一二三四五六 | 久久久久久天堂 | 17c国产精品一区二区 | 欧美第一页浮力影院 | 免费在线观看日韩 | 久久免费看视频 | 亚洲欧美日韩国产成人精品影院 | 亚洲天堂激情 | 国产精品123区 | 成年人在线视频免费观看 | 亚洲欧美在线播放 | 亚洲天堂小说 | 四月婷婷 | 男女做爰猛烈吃奶啪啪喷水网站 | 精品人妻一区二区三区四区久久 |