python - 網頁更新數據之后無法再次抓取
問題描述
我抓取的網頁今天更新了一條信息,然后爬蟲運行了卻沒有抓取到.
from pyspider.libs.base_handler import *from pyspider.database.mysql.mysqldb import SQLclass Handler(BaseHandler): crawl_config = { } @every(minutes=24 * 60) def on_start(self):self.crawl(’http://www.yxztb.net/yxweb/zypd/012001/012001001/’, callback=self.index_page) @config(age=10 * 24 * 60 * 60) def index_page(self, response):for each in response.doc(’.tdmoreinfosub a’).items(): self.crawl(each.attr.href, callback=self.detail_page)@config(priority=2) def detail_page(self, response):return {'address':'宜興市','url':response.url,'title':response.doc(’font span’).text(),'date' :response.doc(’#tdTitle > .webfont’).text()[8:17], }def on_result(self, result):print resultif not result or not result[’title’]: returnsql = SQL()sql.replace(’zhaobiao’,**result)
希望大佬們能講的具體點然后多交流交流
問題解答
回答1:@config (age)參數設定直接忽略了index.page的執行
回答2:既然 on_start 的 @every 是一天,那么self.crawl 中設置 age=12 * 60 * 60 半天是比較合適的,保證每次 every 肯定不會被 age 所限制。另外 @config(age=10 * 24 * 60 * 60),這是10天內不要再爬的意思啊。
相關文章:
1. 想找個php大神仿個網站。2. nginx配置server模塊的問題3. css3 - Typecho 后臺部分表單按鈕在 Chrome 下出現靈異動畫問題,求解決4. javascript - 怎樣限制同一個瀏覽器不能登錄兩個賬號5. java - android代碼重構:如何把app設置里的頭像UI做成通用的?6. java - 新手做一個安卓視頻播放器,想實現一個進度條,按鈕那種在視頻下方懸浮的功能,不知道思路!7. javascript - jquery怎么給select option一個點擊時觸發的事件,如圖 如果選擇自定義觸發一個時間?8. javascript - angular和jquery都用到了$符號,一起用會不會沖突?9. 如何將行內塊元素的內容垂直水平兩個方向居中?10. mysql優化 - 關于mysql分區
