Соскребая номер с текста, используя Python и Beautiful Soup - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь отделить число от интервала (код ниже). Я использовал class, чтобы найти свою информацию на странице, потому что на странице нет идентификаторов для указанной c информации, которую я хочу собрать, поэтому он дает мне всю строку кода HTML. Я хочу иметь возможность отделить номер в этом случае от остальной информации. Я уже сделал это с заголовком и подумал, что могу использовать аналогичный метод для цены.

Когда я печатаю заголовок, я получаю: Bridgestone Corporation (BRDCY)

Когда Я печатаю цену, которую я получаю: <span class="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)" data-reactid="35">18.58</span>

Как мне извлечь 18,58, чтобы единственная строка / int была установлена ​​в цену?

from bs4 import BeautifulSoup

URL = 'https://finance.yahoo.com/quote/BRDCY?p=BRDCY&.tsrc=fin-srch'

headers = {"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763'}

page = requests.get(URL, headers=headers)

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

title = soup.find(id="Lead-3-QuoteHeader-Proxy").get_text()
price = soup.find("span", class_="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)")


#price = price[price.find(">"), price.find("<")]
title = title[0:title.find(")")+1]

print(price)
print(title)

1 Ответ

1 голос
/ 09 января 2020

Используйте функцию get_text (), как вы использовали для Заголовка

  price = soup.find("span", class_="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)").get_text()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...