Python — BeautifulSoup — Значение синтаксического анализа

#python #beautifulsoup

#питон #прекрасный суп

Вопрос:

Я хотел бы проанализировать значение с веб-страницы, используя красивый суп. Я нашел значение, используя свой скрипт. Я просто ищу помощи, чтобы проанализировать значение «1.4340» из совпадения.

 import requests from bs4 import BeautifulSoup  # Making a GET request r = requests.get('https://finance.yahoo.com/quote/^TNX?p=^TNX')  # Parsing the HTML soup = BeautifulSoup(r.content, 'lxml') #print(soup.prettify())  match = soup.find('td', class_='Ta(end) Fw(600) Lh(14px)') print(match) #lt;td class="Ta(end) Fw(600) Lh(14px)" data-reactid="40" data-test="PREV_CLOSE-value"gt;1.4340lt;/tdgt;  

Прекрасный суп

Ответ №1:

Вам нужно получить текст из тега.

 match = soup.find('td', class_='Ta(end) Fw(600) Lh(14px)') text = match.getText() print(text)  

Комментарии:

1. Спасибо. Никогда не думал, что это так просто :о)

Ответ №2:

Ответ

 thing = str('lt;td class="Ta(end) Fw(600) Lh(14px)" data-reactid="40" data-test="PREV_CLOSE-value"gt;1.4340lt;/tdgt;') begin = False newStr = ''  for item in thing:  if item is 'lt;':  begin = False  if begin is True:  newStr  = item  if item is 'gt;':  begin = True  print(float(newStr))  

Выход

 1.434  

Мы можем просто использовать синтаксис html, чтобы просто создать новую строку, а затем преобразовать ее в float. Вы можете сохранить его в виде строки, если хотите.