提问者:小点点

美丽的汤 在源文件中找到标签的位置?


我使用BeautifulSoup从HTML文件中提取信息。我希望能够捕获信息的位置,即BS标记对象的标记在HTML文件中的偏移量。

有办法做到这一点吗?

我目前使用的是lxml解析器,因为它是默认的。


共1个答案

匿名用户

如果我没有看错你的问题,你是在用美汤解析一些html,然后用汤来识别一个标签。一旦你有了标签,你就试图在原始html字符串中找到标签的索引位置。

使用美丽汤捕获标签的索引位置的问题在于,汤会根据给定的解析器改变html的结构。lxml 解析可能不会为字符表示提供字符,尤其是在汤中找到标记之后。

这是否能持续工作还不确定,但您可以尝试使用字符串的find方法来查找标记文本内容的位置,该位置应该基本保持不变。

#!python
# html is a string containing your html document
soup = BeautifulSoup(html,'lxml')
# target is the tag you want to find
target = soup.find('p')
# now we locate the text of the target inside of the html document
html.find((target.text))

此方法不会从 标记的开头开始,但应该能够在 html 中找到标记的内容。

如果你想知道汤中标签的索引,那将更加可行。