Печать votes
и rank
Самый простой способ получить голоса для любого заданного ввода будет:
input_str = 'Chelsea'
for vote in soup.find_all('div', class_='vote_show'):
if vote.find('div', class_='vote_T1').get_text().strip() == input_str:
print(vote.find('div', class_='vote_ST1').get_text().strip()) # Prints votes
print(vote.find('div', class_='vote_ST2').get_text().strip()) # Prints rank
Решение смотрит на все <div class='vote_show'>
, чтобы проверить, совпадает ли текст в <div class='vote_T1'>
со строкой ввода, например, Chelsea
.
Я добавил strip()
, чтобы вы могли найти совпадение дажеесли вокруг строки есть пробелы.Если совпадение найдено, текст содержащегося <div class='vote_ST1'>
печатается, снова удаляя все окружающие пробелы.
Печать индекса
Вы можете изменить цикл for
, чтобы использовать enumerate()
следующим образом:
for idx, vote in enumerate(soup.find_all('div', class_='vote_show')):
if vote.find('div', class_='vote_T1').get_text().strip() == input_str:
print(idx) # prints index
print(vote.find('div', class_='vote_ST1').get_text().strip()) # prints votes
print(vote.find('div', class_='vote_ST2').get_text().strip()) # prints rank
Перечисление позволяет нам зацикливаться на чем-то и иметь автоматический счетчик.
Если вы хотите прекратить искать дальше, как только нашли совпадение, вы можетедобавить оператор break
после оператора print()
.