Форум программистов, компьютерный форум, киберфорум
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. Показов 12336. Ответов 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru