Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/64: Рейтинг темы: голосов - 64, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 30.09.2021
Сообщений: 51

'NoneType' object has no attribute 'text'

08.10.2021, 10:54. Показов 12291. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Выбивает ошибку, не понимаю как ее исправить

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
def get_all_pages():
 
    headers = {
        'user-agent' :'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36'
        }
    
r = requests.get(url='https://winauto.ua/index.php?match=all&subcats=y&pcode_from_q=y&pshort=y&pfull=y&pname=y&pkeywords=y&search_performed=y&q=gazer&dispatch=products.search&items_per_page=128&search_id=37901&page=1')
if not os.path.exists("data"):
        os.mkdir("data")
 
with open("data/page_1.html", "w") as file:
        file.write(r.text)
with open("data/page_1.html") as file:
        src = file.read()
 
soup = BeautifulSoup(src, "lxml")
 
pages_count = int(soup.find("div", class_="ty-pagination__items").find_all(class_="cm-history ty-pagination__item cm-ajax")[-1].text)
 
for i in range(1,pages_count + 1):
 
    url = f'https://winauto.ua/index.php?match=all&subcats=y&pcode_from_q=y&pshort=y&pfull=y&pname=y&pkeywords=y&search_performed=y&q=gazer&dispatch=products.search&items_per_page=128&search_id=37901&page={i}'
 
    r = requests.get(url  = url)
 
    with open(f'data/page_{i}.html','w') as file:
        file.write(r.text)
        time.sleep (4)
        
 
def collect_data(pages_count):
     with open(f"data_{cur_date}.csv", "w") as file:
        writer = csv.writer(file)
 
        writer.writerow(
            (
                "Артикул",
                "Ссылка",
                "Цена"
            )
        )
data = []
cur_date = datetime.now().strftime("%d_%m_%Y")
for page in range (1, pages_count):
  
             with open (f'data/page_{page}.html') as file: src = file.read()
 
             soup = BeautifulSoup(src,'lxml')
 
             items_card = soup.find_all('div', class_='ut2-gl__body')
 
             for item in items_card:
                 product_article = item.find('div',class_='ut2-gl__name').text
                 product_price = item.find('span', class_='cm-reload-98237 ty-price-update', 'title').text
                 product_url = ('href')
ругается на:
Python
1
 product_price = item.find('span', class_='cm-reload-98237 ty-price-update').text
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.10.2021, 10:54
Ответы с готовыми решениями:

'NoneType' object has no attribute 'replace'
Всем привет. Решаю вот такую задачу: Реализовать функцию преобразования табличных данных. Входная и выходная таблицы заданы в построчной...

AttributeError: 'NoneType' object has no attribute 'get'
Код представляет собой второе окно, в которое можно перейти через основное при помощи tkinter. Грубо говоря он служит для добавления...

'NoneType' object has no attribute 'root'
Что делаю не так? функция def parent_search работает нормально при значениях (8, -1, 3) при остальных значениях выдает ошибку...

8
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
08.10.2021, 10:55
Цитата Сообщение от Ostroumets Посмотреть сообщение
NoneType' object has no attribute 'text'
Python
1
2
3
4
5
6
>>> None.text
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    None.text
AttributeError: 'NoneType' object has no attribute 'text'
>>>
Просто не делай так. item.find не обязан тебе что-то вернуть. Ты обязан это проверить. Если ты, конечно, хочешь быть программистом.

У тебя в коде нет ни одной проверки. Делай выводы.
0
0 / 0 / 0
Регистрация: 30.09.2021
Сообщений: 51
08.10.2021, 11:10  [ТС]
Сделал вот такую проверку, не помогает:
Python
1
2
3
 product_price = item.find('span', class_='cm-reload-98237 ty-price-update' ).text 
                 if product_price is None:
                     product_price = 'No type'
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
08.10.2021, 11:11
Ostroumets, ты ее сделал ПОСЛЕ попытки получить текст)))
0
0 / 0 / 0
Регистрация: 30.09.2021
Сообщений: 51
08.10.2021, 11:16  [ТС]
Если я поставлю перед текстом, то я получу product_price is not definded
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
08.10.2021, 11:18
Ostroumets, еще раз повторю - может пока вернуться к основам, книгу почитать, простенькие задачки порешать? ну серьезно - ты на каждом шагу будешь спотыкаться, причем шаг то банальный!

Надо получить item.find('span', class_='cm-reload-98237 ty-price-update' ), проверить что он не нан и тогда получать текст.
0
0 / 0 / 0
Регистрация: 30.09.2021
Сообщений: 51
08.10.2021, 11:24  [ТС]
Я бы этой дичью не занимался, если бы она мне не нужна была, просто сделать ее нужно до понедельника по работа (очевидно что это работа не профильная) и поэтому я сижу тут и страдаю с болью ниже таза

Добавлено через 3 минуты
Вот получил item.find, написал проверку, получаю текст, и все равно выбивает NoneType

Python
1
2
3
4
5
6
product_price = item.find('span', class_='cm-reload-98237 ty-price-update' )
 
                 if product_price is None:
                     product_price = 'No type'
              
                 product_price = item.find('span', class_='cm-reload-98237 ty-price-update' ).text
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,687
Записей в блоге: 29
08.10.2021, 11:32
Лучший ответ Сообщение было отмечено Ostroumets как решение

Решение

Цитата Сообщение от Ostroumets Посмотреть сообщение
product_price = item.find('span', class_='cm-reload-98237 ty-price-update' ).text
хосспаде, если ты в первой строке уже получил product_price, зачем еще раз то его получать? ну подумай маленько, это одинаково работает во всех языках

например
Python
1
2
3
4
5
product_price = item.find('span', class_='cm-reload-98237 ty-price-update' )
    if product_price is None:
        product_price_text = 'No type'
    else:
        product_price_text = product_price.text
0
0 / 0 / 0
Регистрация: 30.09.2021
Сообщений: 51
08.10.2021, 11:43  [ТС]
Я нашел в чем еще была проблема, класс немного не совпадал, я его поменял и все заработало, но проверку конечно же оставлю, спасибо вам большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.10.2021, 11:43
Помогаю со студенческими работами здесь

AttributeError: 'NoneType' object has no attribute 'insert'
В этом коде функция insert, print_tree прекрасно работают class TreeNode: def __init__(self, value): self.val = value ...

AttributeError: 'NoneType' object has no attribute 'get_text'
При поиске класса консоль ругается на print(container.get_text()) и выдает ошибку AttributeError: 'NoneType' object has no attribute...

AttributeError: 'NoneType' object has no attribute 'call'
Доброе утро. Мне нужно реализовать приложение, содержащее 5 экранов. Это что-то типа автоматической формы. Сначала вводим данные в...

Исправить ошибку 'NoneType' object has no attribute 'update'
Создал структуру дерева отрезков, и при попытке выполнения операция ловлю ошибку 'NoneType' object has no attribute 'update'. Ошибка...

Ошибка парсера AttributeError: 'NoneType' object has no attribute 'get_text'
Хочу получить имена криптовалют на первой странице, выводит только первые десять, а потом ошибка. from bs4 import BeautifulSoup as Bs ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru