在我抓取过程中,有些页面会返回部分html正文和状态200的响应,在我将响应正文与我在浏览器中打开的响应正文进行比较后,前者错过了一些内容。 如何在蜘蛛或下载中间件中捕获这个意外的部分响应主体案例?
下面是关于日志示例:
2014-01-23 16:31:53 + 0100 [filmweb_multi] DEBUG:Crawled(408)http://www.filmweb.pl/film/Labirynt-2013-507169/photos> (引用者:http://www.filmweb.pl/film/Labirynt-2013-507169)[' 部分']
答案 0 :(得分:0)
其不部分内容。 其余内容由 Javacript AJAX调用 动态加载。
要调试作为特定请求的响应发送的内容,请使用Scrapy的 open_in_browser() 功能。
How to extract dynamic content from websites that are using AJAX ?上有另一个帖子。请参阅此解决方法。
答案 1 :(得分:0)
在日志中查看['partial']
表示响应缺少某些标头;有关导致partial
标记的更多详细信息,请参阅my answer here。
要捕获这些回复,您只需查看response flags即可。例如,如果您使用Request(url=url, callback=self.parse)
创建了请求,则会在回调中执行以下操作:
def parse(self, response):
if 'partial' in response.flags:
# Do something with the response
pass