#python #beautifulsoup
Вопрос:
Я собираю данные с веб-сайта и беру определенную информацию. Это может существовать в классе «ошибка текста» или «успех текста». Оно меняется в зависимости от того, является ли значение положительным или отрицательным. Итак, я попытался
success = soup.find('span', class_='text-success')
для одного класса, но я не уверен, как справиться, если это класс «текстовая ошибка». Как я могу вернуть только существующее значение? Я также запускаю это в цикле, чтобы постоянно проверять значения.
Комментарии:
1. Итак, вы хотите искать
class_='text-success'
илиclass_='text-error'
?2. @AndrejKesely Я хочу искать и то, и другое, потому что одновременно в пространстве, которое я ищу, существует только одно, если это имеет смысл.
Ответ №1:
Если это может быть один или другой, используйте CSS ИЛИ синтаксис, чтобы указать соответствие тому классу, который присутствует в списке:
success = soup.select_one('.text-error, .text-success')
Ответ №2:
Хотя есть и более элегантные решения, я использовал try
их для каждого имени класса. Т. е.
try:
success = soup.find('span', class_='text-success')
...
except:
...
try:
success = soup.find('span', class_='text-success')
...
except:
...
И это сработало.