Как мне напечатать значение имени тега, а не значение в Beautiful Soup 4 и Python3?

#python-3.x #beautifulsoup

#python-3.x #beautifulsoup

Вопрос:

Я пытаюсь извлечь значение 86830 из исходного кода HTML с помощью bs4. Вот что у меня есть до сих пор:

 page = requests.get("https://www.sunnyportal.com/Templates/PublicPage.aspx?page=1169a2ff-8f51-4ea9-ba72-316009593c62")

soup = BeautifulSoup(page.content, 'html.parser')
  

Теперь я пытаюсь извлечь идентификатор диапазона с этим значением:

 pv_current = soup.find("span", attrs = {"class" : "mainValueAmount"})

print(pv_current)
  

И результат, который я получаю,

 <span class="mainValueAmount" data-peak="164610" data-timestamp="2020-10-27T10:30:00" data-value="86830">-</span>
  

Мой вопрос в том, как мне извлечь это значение 86830 ? Спасибо.

Ответ №1:

data-value является attribute частью span тега. Вы должны использовать квадратные скобки, чтобы извлечь значения атрибутов из тега. Вот как вы это делаете:

 value = pv_current['data-value']

print(value)
  

Вывод:

 86830
  

Вот полный код:

 from bs4 import BeautifulSoup
import requests

page = requests.get("https://www.sunnyportal.com/Templates/PublicPage.aspx?page=1169a2ff-8f51-4ea9-ba72-316009593c62")

soup = BeautifulSoup(page.content, 'html.parser')

pv_current = soup.find("span", attrs = {"class" : "mainValueAmount"})

value = pv_current['data-value']

print(value)