python - Scrapy排除空格

标签 python xpath scrapy

我尝试抓取链接(https://www.century21.com/real-estate/rock-spring-ga/LCGAROCKSPRING/)。我想从中提取“床”数据。由于其中一些房屋有一些空的详细信息,因此只提取了很少的“床”详细信息。但我想了解所有人的详细信息。如果不存在,那么它应该显示“NaN”或其他内容。另一个问题是我检查了这个标签:

<div class="property-beds">
            <strong>2</strong> beds
         </div>

我使用 xpath 命令提取“2 张床”。仅显示“床位”而不是“2 张床位”。所以我用了“|”统一这两个元素。

response.xpath('//div[@class="property-beds"]/strong/text() | //div[@class="property-beds"]/text()'] 

这让我得到了正确的输出,但问题是它在 2 个单独的行中显示结果(2 个在一行中,床在另一行中)。如何以单行显示?

最佳答案

您可以在父元素上使用string()来提取该元素和所有子节点的文本:

In [10]: root.xpath('string(//div[@class="property-beds"])')
Out[10]: '2 beds'

如果有多个元素,则必须迭代 //div[@class="property-beds"] 匹配的元素,然后执行 elem. xpath('string()').

关于python - Scrapy排除空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47245998/

相关文章:

python - 在简单页面中使用scrapy

python - 删除文本中除 "\n"和 "/"之外的所有特殊字符

python - 不支持的格式或格式组合),FindContours

python - python读取多个json文件来查找共同的键值对

datetime - fn :current-dateTime() not returning milliseconds

python - 如何提高Scrapy的爬行速度?

python - Scrapy 结果重复

python - 在 lxml 中查找具有未知 namespace 的元素

python - 使用 selenium 将多个 for 循环组合成 CSV

Python - lxml/获取xpath的全部内容