Форум программистов, компьютерный форум, киберфорум
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. Показов 12188. Ответов 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
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 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
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 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
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru