python - 在 BeautifulSoup 中查找标签的字符串索引

标签 python html string beautifulsoup

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/

相关文章:

python - 计算 Python 字符串中连续重复字母的实例

string - 删除给定字符串第一次出现之后/之前的所有内容

python - 在 PyGObject 中使用 GtkSourceView 从 Glade 加载 GUI

javascript - 想要为全屏视频背景上的音频创建自定义静音/取消静音按钮

python - 聚合 Python 字典的 bool 值的最佳方法是什么?

php - 格式化数据库查询的结果

mysql - HTML5 和 MySQL 日期格式

javascript - 删除jquery中的空双引号

python - Jinja 中的列表理解

python - 扫描字符串文字时出现 SyntaxError EOL