gpt4 book ai didi

python - 无法使用 Scrapy 从父节点和子节点/标签获取文本

转载 作者:行者123 更新时间:2023-11-28 18:06:14 26 4
gpt4 key购买 nike

在这被标记为重复之前,我搜索并尝试了在 SO 上找到的其他解决方案,它们是:

  1. scrapy css selector: get text of all inner tags
  2. How to get the text from child nodes if it is parents to other node in Scrapy using XPath
  3. scrapy get the entire text including children

我要提取的 HTML 是:

<span class="location">
Mandarin Oriental Hotel
<a class="" href="/search-results/Jalan+Pinang%252C+Kuala+Lumpur+City+Centre%252C+50088+Kuala+Lumpur%252C+Wilayah+Persekutuan./?state=Kuala+Lumpur" itemprop="addressRegion" title="Jalan Pinang, Kuala Lumpur City Centre, 50088 Kuala Lumpur, Wilayah Persekutuan.">
Jalan Pinang, Kuala Lumpur City Centre, 50088 Kuala Lumpur, Wilayah Persekutuan.
</a>
,
<a class="" href="/search-results/?neighbourhood=Kuala+Lumpur&state=Kuala+Lumpur" title="Kuala Lumpur">
Kuala Lumpur
</a>
,
<a class="" href="/search-results/?state=Kuala+Lumpur" title="Kuala Lumpur">
Kuala Lumpur
</a>
<span class="" itemprop="postalCode">
50088
</span>
</span>

我想获取//span[@class='location'] 中的所有文本。

我试过:

  1. response.xpath("//span[@class='location']//text()").extract_first()
  2. response.css("span.location *::text").extract_first()
  3. response.css("span.location::text").extract_first()

它们都只返回Mandarin Oriental Hotel,而不是完整地址。

编辑:文本应该产生

Mandarin Oriental Hotel Jalan Pinang, Kuala Lumpur City Centre, 50088 Kuala Lumpur, Wilayah Persekutuan., Kuala Lumpur, Kuala Lumpur 50088

最佳答案

尝试使用以下代码获取每个 span 的字符串表示形式,地址为:

for entry in response.xpath("//div[@class='entry']"):
print(entry.xpath("normalize-space(./span[@class='location'])").extract_first())

关于python - 无法使用 Scrapy 从父节点和子节点/标签获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53277902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com