在Python中解析html后检查元素的存在性

在Python中解析html后检查元素的存在性,python,python-3.x,beautifulsoup,Python,Python 3.x,Beautifulsoup,我想检查在下面的列表中是否有一个元素“TierRank unranked”(名为rank1) 但每次我检查的时候都会说“你排名靠前”。。。。 我做错什么了吗?为什么不检查单个未分级标记,而不是父标记 rank1 = soup.find("div", {"class": "TierRank unranked"}) if "Unranked" in rank1.text: print("You are unranked") else: print("You are ranked")

我想检查在下面的列表中是否有一个元素“TierRank unranked”(名为rank1)

但每次我检查的时候都会说“你排名靠前”。。。。
我做错什么了吗?

为什么不检查单个未分级标记,而不是父标记

rank1 = soup.find("div", {"class": "TierRank unranked"})
if "Unranked" in rank1.text:
    print("You are unranked")
else:
    print("You are ranked")

为什么不检查单个未分级标记,而不是父标记

rank1 = soup.find("div", {"class": "TierRank unranked"})
if "Unranked" in rank1.text:
    print("You are unranked")
else:
    print("You are ranked")
您可以通过以下方式完成:

html = """
<div class="TierRankInfo">
<div class="RankType">Ranked Solo</div>
<div class="TierRank unranked">
        Unranked
        </div>
</div>
"""
soup = BeautifulSoup(html)
print("You are unranked" if soup.findAll("div", {"class": "TierRank unranked"}) else "You are ranked")
html=”“”
排名独奏
未分级
"""
soup=BeautifulSoup(html)
打印(“如果soup.findAll(“div”,“class”:“TierRank unranked”})或“youarearanked”)
如果至少有一个div具有“TierRank unranked”类,则将打印“You is unranked”,否则将打印“You are ranked”

您可以通过以下方式执行此操作:

html = """
<div class="TierRankInfo">
<div class="RankType">Ranked Solo</div>
<div class="TierRank unranked">
        Unranked
        </div>
</div>
"""
soup = BeautifulSoup(html)
print("You are unranked" if soup.findAll("div", {"class": "TierRank unranked"}) else "You are ranked")
html=”“”
排名独奏
未分级
"""
soup=BeautifulSoup(html)
打印(“如果soup.findAll(“div”,“class”:“TierRank unranked”})或“youarearanked”)

如果至少有一个div具有“TierRank unranked”类,那么它将打印“You is unranked”,否则它将打印“You is ranked”

如果使用findAll,您将得到一个列表。然后,您可以检查该列表的长度以确定该元素是否存在。如果使用findAll,您将得到一个列表。然后可以检查该列表的长度以确定该元素是否存在。Thx,问题已解决。Thx,问题已解决。