【问题标题】:Beautiful Soup Find Location of Tag in Source File?Beautiful Soup 在源文件中查找标签的位置?
【发布时间】:2018-03-02 21:07:12
【问题描述】:

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

有没有办法做到这一点?

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

【问题讨论】:

  • 我不清楚您所说的 HTML 文件中的偏移量是什么意思...您能否包含示例 HTML 和您想要的输出以及您的尝试?

标签: python html beautifulsoup


【解决方案1】:

如果我正确地阅读了您的问题,那么您正在使用 BeautifulSoup 解析一些 html,然后使用汤来识别标签。获得标签后,您将尝试在原始 html 字符串中找到标签的索引位置。

使用 BeautifulSoup 捕获标签的索引位置的问题是,soup 会根据给定的解析器改变 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 中定位标签的内容。

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

【讨论】:

  • 谢谢。我怀疑会是这样。我想我也可以在 HTML 中注入一些位置信息,比如 "
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-17
  • 1970-01-01
  • 2013-12-09
  • 2015-12-09
  • 1970-01-01
相关资源
最近更新 更多