无法用BeautifulSoup选择根标签

1 投票
1 回答
2059 浏览
提问于 2025-04-17 21:33

我正在尝试使用 select 来选择标签,使用的是 BeautifulSoup 库。但是我发现,如果标签是 BeautifulSoup 对象的一部分,它会选择根标签;如果只是一个 tag 对象,就不会这样做。

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup()
>>> a = soup.new_tag("a")
>>> a = a.wrap(soup.new_tag("b"))
>>> soup.append(a)
>>> soup
<b><a></a></b>
>>> a
<b><a></a></b>
>>> soup.select("b")
[<b><a></a></b>]
>>> a.select("b")
[]
>>> a.select("a")
[<a></a>]

除了创建一个只包含 a 的新 BeautifulSoup 对象,还有其他方法可以让这个功能正常工作吗?

1 个回答

0

首先,让你的字符串变得更美观:

>>> from bs4 import BeautifulSoup
>>> a='<b><a></a></b>'
>>> a=BeautifulSoup(a)
>>> a
<html><body><b><a></a></b></body></html>
>>> a.select("b")
[<b><a></a></b>]
>>> a.select("a")
[<a></a>]
>>>

这就是BeautifulSoup的工作方式!

撰写回答