Die Webseite, die ich gecrawlt habe, hat heute eine Information aktualisiert, und dann wurde der Crawler ausgeführt, aber er hat sie nicht gecrawlt.
from pyspider.libs.base_handler import * from pyspider.database.mysql.mysqldb import SQL class 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 result if not result or not result['title']: return sql = SQL() sql.replace('zhaobiao',**result)
Ich hoffe, dass die Chefs konkreter werden und sich mehr austauschen können
@config (age)参数设定直接忽略了index.page的执行
既然 on_start 的 @every 是一天,那么self.crawl 中设置
age=12 * 60 * 60
半天是比较合适的,保证每次 every 肯定不会被 age 所限制。另外@config(age=10 * 24 * 60 * 60)
,这是10天内不要再爬的意思啊。