Heim  >  Fragen und Antworten  >  Hauptteil

python – Die Webseite kann nach der Aktualisierung der Daten nicht erneut gecrawlt werden

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

给我你的怀抱给我你的怀抱2711 Tage vor575

Antworte allen(2)Ich werde antworten

  • 我想大声告诉你

    我想大声告诉你2017-05-18 11:00:50

    @config (age)参数设定直接忽略了index.page的执行

    Antwort
    0
  • 迷茫

    迷茫2017-05-18 11:00:50

    既然 on_start 的 @every 是一天,那么self.crawl 中设置 age=12 * 60 * 60 半天是比较合适的,保证每次 every 肯定不会被 age 所限制。另外 @config(age=10 * 24 * 60 * 60),这是10天内不要再爬的意思啊。

    Antwort
    0
  • StornierenAntwort