Scrapy XHR请求提取了大量HTML内容,我如何对其进行刮取/爬网?

Scrapy XHR请求提取了大量HTML内容,我如何对其进行刮取/爬网?,scrapy,infinite-scroll,Scrapy,Infinite Scroll,所以,我试图用无限滚动来刮取一个网站 我将按照本教程介绍如何抓取无限滚动网页: 但给出的示例看起来很简单,它是一个有序的JSON对象,包含您想要的数据 我要刮这个 每个页面的XHR响应都很奇怪,看起来像是损坏的html代码 我不知道如何在“视图”中导航项目。我希望蜘蛛进入每个项目,并为每个项目抓取一些信息 在过去,我通过XPath引导的正常分页和规则成功地实现了这一点。 这是XHR url。 滚动页面时,每个请求将显示8条记录。 所以,做一件事,获取所有记录。这些记录除以8。它将显示XHR请求

所以,我试图用无限滚动来刮取一个网站

我将按照本教程介绍如何抓取无限滚动网页:

但给出的示例看起来很简单,它是一个有序的JSON对象,包含您想要的数据

我要刮这个

每个页面的XHR响应都很奇怪,看起来像是损坏的html代码

我不知道如何在“视图”中导航项目。我希望蜘蛛进入每个项目,并为每个项目抓取一些信息

在过去,我通过XPath引导的正常分页和规则成功地实现了这一点。

这是XHR url。 滚动页面时,每个请求将显示8条记录。 所以,做一件事,获取所有记录。这些记录除以8。它将显示XHR请求的计数。 执行以下过程。你的问题会解决的。我和我有同样的问题。我应用了下面的逻辑。它会解决的

pagination_count = xpath of presented number

value = int(pagination_count) / 8

for pagination_value in value:
   url = https://www.bahiablancapropiedades.com/buscar/resultados/+[pagination_value]

将此url传递给你的scrapy函数

它没有损坏HTML,它被转义以防止它破坏JSON。一些网站将返回简单的JSON数据,而其他网站(如本网站)将返回要添加的实际HTML

要获取元素,您需要从JSON响应中获取HTML,并创建自己的
parsel
Selector
(这与使用
response.css(…)
时相同)

您可以在scrapy shell中尝试以下操作,以获取其中一个“下一页”中的所有链接:

scrapy外壳https://www.bahiablancapropiedades.com/buscar/resultados/3

import json
import parsel

json_data = json.loads(response.text)
sel = parsel.Selector(json_data['view']) # view contains the HTML
sel.css('a::attr(href)').getall()

谢谢你的回复,但我不明白你所说的每个请求8条记录是什么意思。什么是记录?我想让蜘蛛进入每个项目并查看每个项目的一些信息,我确实知道如何使用XPath进行指导,但我想要的信息在响应或预览选项卡的“查看”部分中显示为损坏的HTML。感谢您的回复。但我是python的乞丐,如果你同意的话,我想问你更多的问题。第一。你能解释一下你建议我使用的代码吗?第一行看起来像是获取存储在“视图”中的所有web内容。第二行有点混乱。不确定getall()函数做什么,也不确定它在哪里存储我想要的数据。我将使用html来设置爬行器进入每个项目的规则,一旦进入,就废弃信息。如何设置tose规则?