Получение ширины / атрибутов из тега в Beautifulsoup вместо текста - PullRequest
0 голосов
/ 10 мая 2018

Итак, в документации по Beautifulsoup я могу найти сообщения о поиске определенного тега с использованием идентификатора, класса и т. Д. Но речь не идет о том, как извлечь данные из тега, а не из окружения.

Моя проблема:

<img src=yellowbar.png width=63.94 height=10><img src=redbar.png width=36.0632181423 height=10><br />
Power:</b> 1480 / 1480<br />
<img src=yellowbar.png width=100 height=10><img src=redbar.png width=0 height=10><br />

У меня есть этот HTML. Всего на странице около 20 тегов, из которых 3 имеют src=yellowbar.png

Моя цель - выбрать второй и вернуть ширину. Я предполагаю, что это пойдет:

Поиск тегов -> find src = yellowbar.png -> выбор второго -> ширина печати назад.

Как бы я поступил об этом?

Пока мне удалось распечатать список всех тегов.

soup = BeautifulSoup(element, "lxml")

tag = soup.find_all('img')
print(tag)

, который возвращает

[<img height="10" src="yellowbar.png" width="77"/>, <img height="10" src="redbar.png" width="0"/>]

1 Ответ

0 голосов
/ 10 мая 2018

Если бы я мог понять ваш вопрос, то это должно решить вашу проблему.

from bs4 import BeautifulSoup

content = """
<img src=yellowbar.png width=63.94 height=10><img src=redbar.png width=36.0632181423 height=10><br />
Power:</b> 1480 / 1480<br />
<img src=yellowbar.png width=100 height=10><img src=redbar.png width=0 height=10><br />
"""
soup = BeautifulSoup(content,"lxml")
for tags in soup.find_all("img",{"src":"yellowbar.png"}): #use the attributes as well to specify the item you look for
    print(tags['width']) #access the value using attribute

Вывод:

63.94
100
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...