BeautifulSoup 是否提供了一种方法来获取标签的字符串索引或其来自 HTML 字符串中的文本?
例如:
from bs4 import BeautifulSoup
html_doc = """
<html><head><title>The Dormouse's story</title></head>
<body>
<p class="title"><b>The Dormouse's story</b></p>
</body>
</html>
"""
soup = BeautifulSoup(html_doc, 'lxml')
有没有办法知道html_doc
里面的字符串索引其中 soup.p
( <p class="title"><b>The Dormouse's Story</b></p>
) 开始?或者它的文本 ( The Dormouse's story
) 从哪里开始?
编辑:soup.p
的预期索引将是 63,即 html_doc.index('''<p class="title"><b>The Dormouse's story</b></p>''')
.其文本的预期索引为 83。我没有使用 str.index()
因为返回的索引可能与相关标签不对应。
最佳答案
您似乎在进行一些网络抓取。 我建议你查看XPath - 使用您正在编写代码的语言在 Google 上搜索 XPath 库。
使用 XPath 选择器,您可以找到如下文本元素:
("//text()[contains(.,"The Dormouse's story")]")
从这里开始,如果需要段落元素,只需选择其父类即可。
关于python - 在 BeautifulSoup 中查找标签的字符串索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44558375/