当前位置: 首页 > 知识库问答 >
问题:

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

谷梁存
2023-03-14

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

有办法做到这一点吗?

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

共有1个答案

暨弘毅
2023-03-14

如果我没有看错你的问题,你是在用美汤解析一些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 中找到标记的内容。

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

 类似资料:
  • 我试图使用美丽的汤抓取newegg的产品名称、描述、价格和图像。我有以下bs4.element.标签类型,我想从标签中提取“src”链接。以下是我的标签: 我怎样才能提取 从这个标签?我试过了 但我收到了Keyerror。

  • 考虑一下这段代码: 它只打印“divTag” 更新: 我基本上想在'a'标签中提取“字符串”值。

  • 我正在尝试使用漂亮的汤解析网页(这是我有生以来第一次),我遇到了一个奇怪的错误。html结构中的标记中有一个标记,我一直收到错误 html标签的结构如下:页面上项目的整个网格都在div类"properties_reviews"中,然后进入div类"preview"中,用于特定项目,该类"preview"还有两个类:照片的"preview-media"和我需要解析的文本信息的"preview-con

  • 问题内容: 我正在尝试解析一个网站,并通过BeautifulSoup.findAll获取一些信息,但它并没有全部找到。.我正在使用python3 代码是这个 它只打印其中一半… 问题答案: 不同的HTML解析器对损坏的HTML的处理方式不同。该页面提供了损坏的HTML,解析器对此的处理不佳: 标准库在此特定页面上的麻烦较少: 使用将其转换为您的特定代码示例,您将这样指定解析器:

  • 下面是一个网络刮刀,它用漂亮的汤从这个网站上刮出一个团队名单。每一列数据都被放入一个数组,然后循环到一个CSV文件中。我想刮掉团队名称(代码中的“团队”),但我正在努力将元标记(见下文的html代码)合并到我的CSV写入器循环中。 我认为问题在于“Team”数组中的值长度与其他列中的值长度不匹配。例如,我当前的代码打印的数组如下所示: 但我需要团队数组(最后一个数组)匹配前两个数组的长度,如下所示

  • 问题内容: 我有一个像 我可以得到标题标签 但是我怎样才能在b标签之后得到文本呢?我想通过引用该元素而不是body元素来获取包含“ Title:”的元素之后的文本。 问题答案: 参考的文档,你可能想使用你的: 在这种情况下,“同级”是下一个节点,而不是下一个元素/标签。元素的下一个节点是文本节点,因此您可以获得所需的文本。