根据Beautiful Soup,如果两个NavigableString或Tag对象代表相同的HTML/XML标记,则它们相等。
现在让我们看下面的例子,其中的两个<b>
标签被视为相等,尽管它们位于对象树的不同部分,因为它们看起来都是<b>Java</b>
。
示例
from bs4 import BeautifulSoup
markup = "<p>Learn <i>Python</i>, <b>Java</b>, advanced <i>Python</i> and advanced <b>Java</b>! from Yoagoa</p>"
soup = BeautifulSoup(markup, "html.parser")
b1 = soup.find('b')
b2 = b1.find_next('b')
print(b1 == b2)
print(b1 is b2)
输出
True
False
在下面的例子中,比较了两个NavigableString对象。
示例
from bs4 import BeautifulSoup
markup = "<p>Learn <i>Python</i>, <b>Java</b>, advanced <i>Python</i> and advanced <b>Java</b>! from Yoagoa</p>"
soup = BeautifulSoup(markup, "html.parser")
i1 = soup.find('i')
i2 = i1.find_next('i')
print(i1.string == i2.string)
print(i1.string is i2.string)
输出
True
False