首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么刮破的爬虫停了?

为什么刮破的爬虫停了?
EN

Stack Overflow用户
提问于 2013-09-24 17:00:02
回答 1查看 2.6K关注 0票数 4

我已经写了一个爬虫使用刮除框架来解析一个产品网站。爬行器突然停在中间,没有完成完整的解析过程。我对此做了大量的研究,大多数的答案都表明我的爬虫被网站屏蔽了。有什么机制可以让我发现我的蜘蛛是被网站阻止了,还是它自己停下来了?

下面是蜘蛛的信息级日志条目。

代码语言:javascript
复制
2013-09-23 09:59:07+0000 [scrapy] INFO: Scrapy 0.18.0 started (bot: crawler)  
2013-09-23 09:59:08+0000 [spider] INFO: Spider opened  
2013-09-23 09:59:08+0000 [spider] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)  
2013-09-23 10:00:08+0000 [spider] INFO: Crawled 10 pages (at 10 pages/min), scraped 7 items (at 7 items/min)  
2013-09-23 10:01:08+0000 [spider] INFO: Crawled 22 pages (at 12 pages/min), scraped 19 items (at 12 items/min)  
2013-09-23 10:02:08+0000 [spider] INFO: Crawled 31 pages (at 9 pages/min), scraped 28 items (at 9 items/min)  
2013-09-23 10:03:08+0000 [spider] INFO: Crawled 40 pages (at 9 pages/min), scraped 37 items (at 9 items/min)  
2013-09-23 10:04:08+0000 [spider] INFO: Crawled 49 pages (at 9 pages/min), scraped 46 items (at 9 items/min)  
2013-09-23 10:05:08+0000 [spider] INFO: Crawled 59 pages (at 10 pages/min), scraped 56 items (at 10 items/min)  

下面是爬行器关闭之前日志文件中调试级别条目的最后一部分:

代码语言:javascript
复制
2013-09-25 11:33:24+0000 [spider] DEBUG: Crawled (200) <GET http://url.html> (referer: http://site_name)
2013-09-25 11:33:24+0000 [spider] DEBUG: Scraped from <200 http://url.html>

//scrapped data in json form

2013-09-25 11:33:25+0000 [spider] INFO: Closing spider (finished)  
2013-09-25 11:33:25+0000 [spider] INFO: Dumping Scrapy stats:  
    {'downloader/request_bytes': 36754,  
     'downloader/request_count': 103,  
     'downloader/request_method_count/GET': 103,  
     'downloader/response_bytes': 390792,  
     'downloader/response_count': 103,  
     'downloader/response_status_count/200': 102,  
     'downloader/response_status_count/302': 1,  
     'finish_reason': 'finished',  
     'finish_time': datetime.datetime(2013, 9, 25, 11, 33, 25, 1359),  
     'item_scraped_count': 99,  
     'log_count/DEBUG': 310,  
     'log_count/INFO': 14,  
     'request_depth_max': 1,  
     'response_received_count': 102,  
     'scheduler/dequeued': 100,  
     'scheduler/dequeued/disk': 100,  
     'scheduler/enqueued': 100,  
     'scheduler/enqueued/disk': 100,  
     'start_time': datetime.datetime(2013, 9, 25, 11, 23, 3, 869392)}  
2013-09-25 11:33:25+0000 [spider] INFO: Spider closed (finished)  

还有几页有待分析,但蜘蛛停了下来。

EN

回答 1

Stack Overflow用户

发布于 2013-09-25 23:03:44

到目前为止,对于蜘蛛来说,我知道:

  1. 有一些队列或urls池需要使用解析方法进行抓取/解析。您可以指定、将url绑定到特定的方法,或者让默认的“解析”执行任务。
  2. 从解析方法中,您必须返回/产生另一个请求,以输入该池或项。
  3. 当池耗尽urls或发送停止信号时,蜘蛛停止爬行。

如果您共享您的蜘蛛代码,那么我们就可以检查这些绑定是否正确。例如,使用SgmlLinkExtractor很容易错误地错过一些绑定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18987719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档