Python 刮痕过早地爬行
我已经有一个爬虫程序成功运行了几个月,但在过去的几周里,它在成千上万个应该爬网的页面中只爬过了几页之后就提前完成了 它是一个Python 刮痕过早地爬行,python,scrapy,scrapy-spider,Python,Scrapy,Scrapy Spider,我已经有一个爬虫程序成功运行了几个月,但在过去的几周里,它在成千上万个应该爬网的页面中只爬过了几页之后就提前完成了 它是一个SitemapSpider,具有以下sitemap\u规则 class FooSitemapSpider(SitemapSpider): name = "foo" sitemap_urls = ["http://www.foo.se/sitemap.xml"] sitemap_rules = [ ('/bostad/', 'parse
SitemapSpider
,具有以下sitemap\u规则
class FooSitemapSpider(SitemapSpider):
name = "foo"
sitemap_urls = ["http://www.foo.se/sitemap.xml"]
sitemap_rules = [
('/bostad/', 'parse_house')
]
我要爬网的所有url如下所示:
http://www.foo.se/bostad/address-1-259413
http://www.foo.se/bostad/address-2-275754
大约有50000多个这样的页面需要爬网,但有时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)
我还尝试更改用户代理
、下载延迟
和运行爬行器的服务器/ip,以确保停止我请求的不是目标
有什么想法吗?对我应该调试什么有什么建议吗?这很难,因为我没有出错
以下是包含0个错误的爬网的完整日志:
快速检查,您正在运行哪个版本的scrapy?(几天前升级到1.0)您似乎有一个错误:
'log\u count/error':1
,您能粘贴日志吗?我已将日志粘贴到粘贴箱中,并编辑了我的问题@Lawrence我的示例中的错误来自重复的图像文件名。它没有影响爬网,也不在粘贴的日志中。它有0个错误。快速检查,您正在运行哪个版本的scrapy?(几天前升级到1.0)您似乎有一个错误:'log\u count/error':1
,您能粘贴日志吗?我已将日志粘贴到粘贴箱中,并编辑了我的问题@Lawrence我的示例中的错误来自重复的图像文件名。它没有影响爬网,也不在粘贴的日志中。它得到了0个错误。