scrapy中的spider傳參實現增量的方法
有時候需要根據項目的實際需求向spider傳遞參數來控制spider的運行方式。
比如說,1.根據用戶提交的url來控制spider爬取的網站。2.根據需求增量爬取數據。
今天就寫一個增量(augmenter)的方式:
Spider參數通過 crawl 命令的 -a 選項來傳遞,比如:
scrapy crawl xxx -a augmenter=xxxxxx
註:augmenter=不為空
1.首先在spider裡添加
註:在網上也看瞭不少的博客,最後發現*args, **kwargs這兩個必須加上,要不然會出現bug,不信的話可以試試哦!
如果想減少代碼量的話,可以寫到類裡面去繼承!那這樣的話,spider裡面就不要在寫瞭!!!要不然就不起作用瞭!!!
還有
super(eval(self.__class__.__name__), self).__init__(*args, **kwargs)
這裡的eval()獲取的是類名,這樣寫必須是最後一個是你要的類名,中間有繼承什麼的,就會出錯!或者直接把類名粘過來!
2.spider實現方式:
這樣就實現瞭簡單的增量!增量的方式有很多,常見的:時間、計數、爬取特定的幾頁!
選擇自己需要的增量方式寫在這個parse_augmenter()裡面,
這樣需要從頭開始run和增量run就不受影響!
到此這篇關於scrapy中的spider傳參實現增量的方法的文章就介紹到這瞭,更多相關scrapy spider傳參增量內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 一文讀懂python Scrapy爬蟲框架
- python3 scrapy框架的執行流程
- Python爬蟲教程使用Scrapy框架爬取小說代碼示例
- Python Scrapy爬蟲框架使用示例淺析
- Scrapy之爬取結果導出為Excel的實現過程