Получение "NoneType object is not subscriptable" при очистке содержимого 'aria-label' - PullRequest
1 голос
/ 17 июня 2020

Я очищаю веб-сайт с помощью BeautifulSoup4, содержимое которого находится под тегом aria-label. Я сжал свою иерархию до одного тега, но когда я пытаюсь извлечь из него данные, это дает мне следующую ошибку: "TypeError: 'method' object is not subscriptable"

Переменная right_elem дает мне список всех тегов, которые я использую интересует:

right_elem = change_script[41].findAll("circle")

, и следующий тег является одним из интересующих меня тегов:

<circle aria-label="Filling capacity of the engine is 24 liters" class="graph-bullet" cx="0" cy="0" fill="#ffffff" fill-opacity="1" r="4" stroke="#ffffff" stroke-opacity="0" stroke-width="2" transform="translate(4,177)"></circle>

Я пробовал следующее, чтобы решить эту проблему, но не нашел успеха:

- right_elem[0].select_one('[class*="graph-bullet"][aria-label]')['aria-label']
- right_elem[0].find("circle", class_="graph-bullet")["aria-label"]

Любая помощь приветствуется.

1 Ответ

1 голос
/ 17 июня 2020

Попробуйте: right_elem[0].find("circle", attrs={'class': 'graph-bullet'}).attrs["aria-label"]

Причина, когда вы используете right_elem[0].find("circle", class_="graph-bullet"), вы просто получаете HTML Parsing (Soup Object). И когда вы вызовете .attrs, он вернет словарь всех атрибутов. Затем вы индексируете его как ["aria-label"]. Надеюсь, это сработает.

...