使用BeautifulSoup如何找到元素的父级标签?

9

我想知道是否可以使用Beautiful Soup在HTML标签中获取几行文本:

<tr id="12590559" class="">
<td>
<span class="he16-1 tip-top" title="Cracker"></span>
</td>
<td>
cracker.crc
</td>

在这个例子中,我想使用标题信息提取id,方法如下:
soup = BeautifulSoup(lista.content, "lxml")
id = soup.find(attrs={"title": "Cracker"})

I can get the

<span class="he16-1 tip-top" title="Cracker"></span>

但我也想获取 id。我可以使用 BeautifulSoup 获取几行上面的内容吗?


1
如果正确解决了您的问题,请将答案标记为已接受 :) - Morse
1个回答

11

使用BeautifulSoupfind_parent/find_parents方法。

tr作为父级搜索项,并使用['id']打印id值。

id.find_parent('tr')['id']

>> '12590559'

但我想要获取该块的ID,因为它来自cracker.crc而不是其他块,因为它们都是相同的,只是名称不同。无论如何,感谢您的帮助 :) - Mateus Oliveira
就像在页面中我有更多类似的代码,我想获取那一段,因为它具有cracker.crc。 - Mateus Oliveira
使用BeautifulSoup在HTML中搜索字符串 - Morse
是的,但如果我通过文本搜索,它会找到文本而不是ID,我想找到包含文本的“块”,然后获取ID... - Mateus Oliveira
1
最后感谢您的回答,我像您一样使用了findparent,将text="Cracker"放入其中,它起作用了,谢谢! - Mateus Oliveira
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接