Соскоб в Интернете на фондовом рынке - AttributeError: у объекта 'NoneType' нет атрибута 'text' - PullRequest
0 голосов
/ 10 июня 2018

Просмотр изображения для кода веб-сайта Я пытаюсь выполнить очистку веб-страниц на сайтах фондового рынка.

Мой код:

import urllib.request
from bs4 import * soup=BeautifulSoup(urllib.request.urlopen("http://www.bloomberg.com/quote/SPX:IND"))
title = soup.title.text
name = soup.find('span', {'class': 'navi-bar__logo--title'}).text #this class is executed
value = soup.find('span', {'class': 'priceText__1853e8a5'}).text #problem is with this class
print(name)
print(value)

В данный момент я застрял на этой ошибке :

Предупреждение (из модуля предупреждений): Файл "C: \ Users \ bakkolla \ AppData \ Local \ Programs \ Python\ Python36-32 \ lib \ site-packages \ bs4__init __. Py ", строка 181 markup_type = markup_type))

UserWarning: не был явно указан синтаксический анализатор, поэтому я использую лучший доступный анализатор HTML для этой системы("html.parser").

Обычно это не проблема, но если вы запускаете этот код в другой системе или в другой виртуальной среде, он может использовать другой анализатор и вести себя по-другому.

Код, вызвавший это предупреждение, находится в строке 1 файла.Чтобы избавиться от этого предупреждения, измените код, который выглядит следующим образом:

BeautifulSoup (YOUR_MARKUP}) На это:

BeautifulSoup (YOUR_MARKUP, "html.parser") Traceback (последний вызов последний):

Файл "C: \ Users \ bakkolla \ Desktop \ ex.py", строка 8, в значении = soup.find ('span', {'class': 'priceText__1853e8a5'}). Text# проблема с этим классом

AttributeError: у объекта 'NoneType' нет атрибута 'text'

1 Ответ

0 голосов
/ 10 июня 2018

Красивый суп не может найти класс с именем priceText__1853e8a5, поэтому он вернул None, следовательно, не может получить свойство text none.Проверьте с помощью нескольких страниц, не изменяется ли класс div со страницей, и проверьте, правильно ли вы написали

...