BeautifulSoup AttributeError: объект «NoneType» не имеет атрибута «get_text» при непосредственном вызове .get_text()Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 BeautifulSoup AttributeError: объект «NoneType» не имеет атрибута «get_text» при непосредственном вызове .get_text()

Сообщение Anonymous »

Я использую BeautifulSoup с Selenium для сбора данных с веб-сайта. Я столкнулся с проблемой, когда доступ к методу get_text() напрямую приводит к ошибке AttributeError, тогда как косвенный доступ к нему не вызывает никаких ошибок.
Вот соответствующая часть моего кода:
Рабочий код (без ошибок)

Код: Выделить всё

page_content = BeautifulSoup(driver.page_source, "html.parser")
article_rows = page_content.select(".project-row.published")

for i, article_row in enumerate(article_rows):
title = article_row.select_one(".project-title")
print("title", title.get_text())
Выход:

Код: Выделить всё

title

title for the article
Неверный код (AttributeError)

Код: Выделить всё

page_content = BeautifulSoup(driver.page_source, "html.parser")
article_rows = page_content.select(".project-row.published")

for i, article_row in enumerate(article_rows):
title = article_row.select_one(".project-title").get_text()
Ошибка:

Код: Выделить всё

AttributeError: 'NoneType' object has no attribute 'get_text'
Подробности:
  • В первом блоке кода я сохраняю результат select_one в заголовке переменной, а затем вызываем get_text() для этой переменной. Это работает без каких-либо проблем.
  • Во втором блоке кода я пытаюсь вызвать get_text() непосредственно для результата select_one, но это приводит к AttributeError.
Вопрос:
Почему первый подход работает без ошибок, а второй второй подход вызывает ошибку AttributeError? Как я могу безопасно вызвать get_text() напрямую?
Дополнительная информация:
  • Я убедился, что элементы с названием проекта класса существуют на странице.
  • Используя Python 3.12.4 и BeautifulSoup 4.12.3.
  • Страница загружается правильно, и все элементы кажутся на месте.
Любая информация или решения по предотвращению ошибки AttributeError

Любые идеи или решения по предотвращению ошибки AttributeError

code> при прямом вызове get_text() будет очень признателен.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/786 ... -text-when
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»