无法用BeautifulSoup选择根标签
我正在尝试使用 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的工作方式!