我已经成功运行了几个月的爬虫,但是过去几周它只是在数万个应该被抓取的页面中只有几个爬行页面之后提前完成。
它是SitemapSpider
,其中包含以下sitemap_rules
。
class FooSitemapSpider(SitemapSpider):
name = "foo"
sitemap_urls = ["http://www.foo.se/sitemap.xml"]
sitemap_rules = [
('/bostad/', 'parse_house')
]
我想要抓取的所有网址都是这样的:
http://www.foo.se/bostad/address-1-259413
http://www.foo.se/bostad/address-2-275754
这样的aprox 50,000+页面应该被抓取,但蜘蛛会在有时会抓取0个抓取页面后停止抓取,有时只抓取少数几个页面而没有错误。它只是说:
2015-06-25 19:37:38 [scrapy] INFO: Closing spider (finished)
2015-06-25 19:37:38 [scrapy] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 106313,
'downloader/request_count': 310,
'downloader/request_method_count/GET': 310,
'downloader/response_bytes': 2809108,
'downloader/response_count': 310,
'downloader/response_status_count/200': 309,
'downloader/response_status_count/404': 1,
'file_count': 21,
'file_status_count/downloaded': 21,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2015, 6, 25, 17, 37, 38, 154000),
'item_scraped_count': 4,
'log_count/DEBUG': 1717,
'log_count/INFO': 9,
'log_count/WARNING': 8,
'request_depth_max': 2,
'response_received_count': 310,
'scheduler/dequeued': 289,
'scheduler/dequeued/memory': 289,
'scheduler/enqueued': 289,
'scheduler/enqueued/memory': 289,
'start_time': datetime.datetime(2015, 6, 25, 17, 35, 51, 868000)}
2015-06-25 19:37:38 [scrapy] INFO: Spider closed (finished)
我还尝试更改USER_AGENT
,DOWNLOAD_DELAY
以及我运行蜘蛛的服务器/ ip,以确保它不是停止的目标我的要求。
有什么想法吗?我应该调试什么的建议?这很困难,因为我没有错误。
这是一个包含0个错误的爬网的完整日志: http://pastebin.com/psQX6BCk