gpt4 book ai didi

python - Xpath,从div内的B中选择文本,同时也获取普通文本

转载 作者:太空宇宙 更新时间:2023-11-03 14:41:08 24 4
gpt4 key购买 nike

基本上我有类似这样的html:

<div>
<p>
<b>1</b> Communication
</p>
<p>
<b>2</b> Errors
</p>
...
</div>

我正在尝试(使用Scrapy)是这样的:

response.xpath("//div//p//text()")

但是这会返回一个列表,例如

[
"1",
"Communication",
"2",
"Errors"
]

我想要这样的东西:

[
"1 Communication",
"2 Errors"
]

如果有任何帮助,我们将不胜感激。我试图找出一种忽略 b 标签的方法,但我找不到任何实际有效的方法。我不能只按两位连接列表索引的原因是因为并非我需要解析的每个 html 都像这样工作。我想使用可以忽略 b 标签(如果存在)的东西,而在任何情况下都只获取 p 中的文本。谢谢!

最佳答案

如果您的一般模式是忽略 <b>标签,你可以使用 w3lib删除这些标签并根据结果构建新的响应。像这样的东西:

import w3lib
import scrapy

new_body = w3lib.html.remove_tags(response.body, which_ones=('b'))
new_response = scrapy.http.HtmlResponse(url=response.url, body=new_body)

new_response现在包含原始响应,但带有 <b>标签已删除。然后您可以使用提取逻辑,而无需考虑它们。

关于python - Xpath,从div内的B中选择文本,同时也获取普通文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46537630/

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