Проверка наличия элемента после разбора html in Python - PullRequest
0 голосов
/ 14 апреля 2020

Я хочу проверить, есть ли элемент "TierRank unranked" в списке ниже (с именем rank1)

<div class="TierRankInfo">
<div class="RankType">Ranked Solo</div>
<div class="TierRank unranked">
        Unranked
        </div>
</div>

Итак, я закодировал это так.

rank1 = soup.find("div", {"class": "TierRankInfo"})
if sum(["TierRank unranked" in x for x in rank1]) > 0:
    print("You are unranked")
else:
    print("You are ranked")

, но каждый раз, когда я проверил, он говорит: «Вы ранжированы» .... Я сделал что-то не так ???

Ответы [ 2 ]

1 голос
/ 14 апреля 2020

вы можете сделать это следующим образом:

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")

Это выведет «You unranked», если есть хотя бы один div с классом «TierRank unranked», иначе будет напечатано «You ranked»

1 голос
/ 14 апреля 2020

Почему бы вам не проверить отдельный тег с незарегистрированными тегами вместо родительского тега?

rank1 = soup.find("div", {"class": "TierRank unranked"})
if "Unranked" in rank1.text:
    print("You are unranked")
else:
    print("You are ranked")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...