首页 > 解决方案 > 漂亮的汤从 HTML 源代码中提取数据?

问题描述

我试图从网页“ https://finance.yahoo.com/quote/1928.HK/financials?p=1928.HK ”中提取“Reported EPS Basic ”。运行我的代码后,数据 0.23、0.2 以如下格式出现,如何从以下源代码中提取这些数字?

"div class="D(tbc) Ta(end) Pstart(6px) Pend(4px) Bxz(bb) Py(8px) BdB Bdc($seperatorColor) Miw(100px) Miw(156px)--pnclg" 数据测试="fin-col" data-reactid="292">0.23

div class="D(tbc) Ta(end) Pstart(6px) Pend(4px) Bxz(bb) Py(8px) BdB Bdc($seperatorColor) Miw(100px) Miw(156px)--pnclg Bgc($lv1BgColor) fi-row:h_Bgc($hoverBgColor)" data-test="fin-col" data-reactid="293">0.20

我的代码:

url="https://finance.yahoo.com/quote/1928.HK/financials?p=1928.HK"
result = requests.get(url)
result.raise_for_status()
result.encoding = "utf-8"


src = result.content
soup = BeautifulSoup(src, 'lxml')
#soup = BeautifulSoup(src, 'html5lib')
#print(soup.prettify())
print(soup)

with open('soup.txt','w') as f:
    f.write(str(src))

标签: pythonhtmlbeautifulsoupextract

解决方案


尝试这个,

import requests
import bs4

url = 'https://finance.yahoo.com/quote/1928.HK/financials?p=1928.HK'
data = requests.get(url)

soup = bs4.BeautifulSoup(data.text,'html.parser')

soup.find_all('div',attrs={"data-reactid":"292"})[0].text
soup.find_all('div',attrs={"data-reactid":"293"})[0].text

推荐阅读