Sevastyan Razumov
Профи
(873)
3 месяца назад
Ошибки могут возникать по разным причинам. В данном случае, если элемент card_text_4 не содержит текст, это может быть вызвано следующими причинами:
Неправильное указание класса или идентификатора элемента. Убедитесь, что класс 'card__name' действительно присутствует в HTML-разметке элемента, который вы пытаетесь найти. Может быть опечатка или изменение структуры страницы.
Элемент card_text_4 может быть пустым или не содержать текстового содержимого в HTML-разметке. В этом случае, когда вы вызываете text.strip(), он не возвращает текст, так как его нет.
Чтобы проверить, какие элементы на самом деле содержатся в card, вы можете добавить отладочную печать, например:
for l in card:
card_text=l.find('div', class_='price flex items-center').text.strip()
card_text_2=l.find('div', class_='price-installment').text.strip()
card_text_3=l.find('div', class_='price-bonus').text.strip()
card_text_4=l.find('div', class_='card__name').text.strip()
print(card_text,'\n',card_text_2,'\n',card_text_3)
print(card_text_4) # Добавленная отладочная печать
Это поможет вам определить, почему card_text_4 не содержит текста. Если элемент не найден или содержит другую разметку, вам нужно будет изменить свой код для правильного извлечения информации или пропустить элемент, если он не является обязательным.
ewe 2e¶ CoЛнЫшКоcBeTиТоЧеНЬяРкО*
Высший разум
(290465)
3 месяца назад
Судя по всему это какой-то парсер web-страницы, возьмите текст этой странички откройте в редакторе и убедитесь, что class с именем "card__name" там действительно присутствует.
Ну и еще хорошо бы знать, как именно "не дает" - выводит пустое значение, выводит не то значение, трапается в эксцепшин, еще что-то?.
Юрий МагдаляновУченик (178)
3 месяца назад
пишет мол нет текста у данного объекта 'NoneType' object has no attribute 'text'
а если напишу вместо этого
card_text=l.find('div', class_='price flex items-center').text.strip()
card_text_2=l.find('div', class_='price-installment').text.strip()
card_text_3=l.find('div', class_='price-bonus').text.strip()
card_text_4=l.find('div', class_='card__name').text.strip()
print(card_text,'\n',card_text_2,'\n',card_text_3,'\n',card_text_4)
вот это card_text=l.text.strip()
print(card_text)
то весь текст класса выводит