Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否在源文件中找到标记的位置?_Python_Html_Beautifulsoup - Fatal编程技术网

Python 是否在源文件中找到标记的位置?

Python 是否在源文件中找到标记的位置?,python,html,beautifulsoup,Python,Html,Beautifulsoup,我正在使用BeautifulSoup从HTML文件中提取信息。我希望能够捕获信息的位置,即标记的HTML文件中的偏移量和BS标记对象的偏移量 有办法做到这一点吗 我目前使用的是lxml解析器,因为它是默认的。如果我正确阅读了您的问题,您将使用BeautifulSoup解析一些html,然后使用soup来识别标记。一旦你有了标签,你就会试图在原始html字符串中找到标签的索引位置 使用BeautifulSoup捕获标记的索引位置的问题是,soup将根据给定的解析器改变html的结构。lxml解析可

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

有办法做到这一点吗


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

如果我正确阅读了您的问题,您将使用BeautifulSoup解析一些html,然后使用soup来识别标记。一旦你有了标签,你就会试图在原始html字符串中找到标签的索引位置

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

这是否能持续工作还不确定,但是您可以尝试使用字符串的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中找到标记的内容


如果你想知道汤体中标签的索引,那就更可行了

我不清楚你所说的HTML文件中的偏移量是什么意思…你能包括示例HTML和你想要的输出,以及你的尝试吗?谢谢。我怀疑情况会是这样。我想我也可以在HTML中注入一些位置信息,比如“这是一个有缺陷的解决方案,对于重复的内容来说会失败(这甚至不罕见)。如果有人能说服我,我很高兴取消我的否决票。@Herbert我同意。虽然有点晚了,但我遇到了同样的问题。我的解决办法是查找目标文本的所有副本,并找到我们真正要替换的文本。这是通过获取所需替换文本的索引,将内容拆分为头部和尾部,然后将标记作为字符串插入。