使用 xpath 解析 属性 页面 URL

Parse property page URLs using xpath

我正在尝试解析主 属性 页面 https://www.realtyatlas.co.za/search?areas%5B0%5D%5Btown%5D=Bellville&status=For%20Sale,更准确地说,我想从此处的属性 class 中提取 href,并进行后续操作 link:

<div class="col-md-4">
     <a class="property-item__wrap" href="/loevenstein-apartment-for-sale-1917472">

然而,我尝试过的所有组合结果都是 None。 我也知道 API (https://jf6e1ij07f.execute-api.eu-west-1.amazonaws.com/p/search),但是,在响应中,我没有看到属性的 URL,这没有用。 我是否遗漏了什么或关于我做错了什么的想法?

这是一些代码:

 for prop in response.xpath("//div[@class='col-md-4']"):
...     link = prop.xpath("./a[@class='property-item__wrap']/@href").get()

提前致谢!

正如您已经发现的那样,属性信息来自您提到的 API 调用,而不是直接嵌入到您正在向其发出请求的站点中(由于 javascript 呈现),因此您需要直接从您的 scrapy 请求中调用 API 来获取该信息(这是一个包含特定数据的 POST 请求,因此您需要自己构建它)

我可能是错的,但看起来这个网站会即时生成 URL,具体取决于它提供的 属性 类型,因此您仍然可以创建 [=24] =] 自己使用来自 API:

的数据
https://www.realtyatlas.co.za/{suburb}-{propertyType}-{propertyStatus}-{propertyid}

其中以下变量可以替换为来自 API

的变量