我正在用Scrapy(Python)编写一个爬虫程序,不知道如何处理某些错误。你知道吗
我有一个网站,有时返回一个空的机构或一个正常的网页与错误信息。两个回复都带有标准的200http状态码。你知道吗
当我遇到这种情况时,我想做的是告诉斯拉皮
HTTPCACHE_ENABLED = True
),因为成功请求的内容看起来不同AUTOTHROTTLE_ENABLED = True
)有没有一种简单的方法,比如在laraise scrapy.TemporaryError
中引发某个异常,或者我必须手动执行所有操作。在后一种情况下,如何从缓存中删除内容或与自动油门模块通话?你知道吗
我知道我可以对请求使用dont_cache
来不缓存它们。但通常我确实想缓存我的请求,并且只有在我想保留它时才决定响应。文档也不清楚这个标志是否避免了将请求的响应保存到缓存或者如果它也避免了从缓存读取请求。。。你知道吗
Autothrottle使用下载延迟来调整请求速率。throttling algorithm将非200响应视为失败响应,并且不减少下载延迟。但是,我的请求返回200个状态码。所以自动油门无法处理这种情况。必须有一种方法告诉autothrottle使用其限制逻辑,并将这些特定请求视为失败。你知道吗
在您的响应中,您可以检查一个条件并决定重新排列URL。你知道吗
requests disappear after queueing in scrapy
动态调整油门
如果您选中
self.crawler.extensions.middlewares
,您将看到它已经加载了所有扩展对我来说
self.crawler.extensions.middlewares[5]
给出<scrapy.extensions.throttle.AutoThrottle object at 0x10b75a208>
(当然,您将循环遍历元组并找到属于AutoThrottle
类型的元组)现在您可以使用这个对象并在scraper中动态调整值
相关问题 更多 >
编程相关推荐