【问题标题】:Scrapy spider finishing early for no apparent reasonScrapy spider 无缘无故提前完成
【发布时间】:2012-12-28 23:52:11
【问题描述】:

我有一个scrapy spider(代码在gist),它似乎运行良好,除了它突然无缘无故停止。当它停止时,日志文件的最后一位是:

2012-12-28 23:42:04+0000 [church] DEBUG: Crawled (200) <GET http://www.achurchnearyou.com/cogges-st-mary/> (referer: http://www.achurchnearyou.com/clifton-reynes-st-mary-the-virgin/)
2012-12-28 23:42:04+0000 [church] DEBUG: Scraped from <200 http://www.achurchnearyou.com/cogges-st-mary/>
    {'archdeaconry': u'OXFORD',
     'archdeaconry_id': u'271',
     'benefice': u'Cogges and S Leigh',
     'benefice_id': u'27',
     'deanery': u'WITNEY',
     'deanery_id': u'27109',
     'legal_name': u'Cogges',
     'parish_id': u'270245'}
2012-12-28 23:42:04+0000 [church] DEBUG: Redirecting (301) to <GET http://www.achurchnearyou.com//> from <GET http://www.achurchnearyou.com/venue.php?V=0083>
2012-12-28 23:42:04+0000 [church] INFO: Closing spider (finished)

蜘蛛是否有任何理由会在重定向 URL 后直接决定它完成?有趣的是,我有一些自定义的 DownloaderMiddleware 会捕获这样的重定向并创建一个新请求(基本上我正在尝试的一些 URL 将重定向到主页,我想忽略这些并创建一个不同的 URL )。

【问题讨论】:

    标签: python screen-scraping scrapy


    【解决方案1】:

    嗯..

    看了你的代码(看起来很干净)但我认为错误更简单(仍然不知道你为什么从初始id = 63..开始)

    但是逆向工程你的任务。简单的答案是:

    1. id 为 83 的“教区”不存在或有错误。

    如果你去http://www.achurchnearyou.com/send_message.php?venue_id=82 它工作。 但如果尝试http://www.achurchnearyou.com/send_message.php?venue_id=83

    (注意 id 82 vs 83)

    教区的名称“消失”与其他功能相同。

    您获得重定向的原因是,CMS/网站没有显示未找到的 404 文件,而是将您重定向到主页。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      • 2021-12-23
      • 2017-04-11
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多