gpt4 book ai didi

python - 使用 BeautifulSoup 搜索雅虎财经

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:10 25 4
gpt4 key购买 nike

我正在尝试从 Yahoo 中的代码的“关键统计信息”页面提取信息(因为 Pandas 库不支持此功能)。

AAPL 示例:

from bs4 import BeautifulSoup
import requests

url = 'http://finance.yahoo.com/quote/AAPL/key-statistics?p=AAPL'
page = requests.get(url)
soup = BeautifulSoup(page.text, 'lxml')

enterpriseValue = soup.findAll('$ENTERPRISE_VALUE', attrs={'class': 'yfnc_tablehead1'}) #HTML tag for where enterprise value is located

print(enterpriseValue)

编辑:谢谢安迪!

问题:这是打印一个空数组。如何更改我的 findAll 以返回 598.56B

最佳答案

嗯,find_all 返回的列表为空的原因是因为该数据是通过单独的调用生成的,而仅通过发送 GET 请求来完成那个网址。如果您查看 Chrome/Firefox 上的“网络”选项卡并按 XHR 进行过滤,通过检查每个网络操作的请求和响应,您可以找到您也应该发送 GET 请求的 URL。

在这种情况下,它是 https://query2.finance.yahoo.com/v10/finance/quoteSummary/AAPL?formatted=true&crumb=8ldhetOu7RJ&lang=en-US&region=US&modules=defaultKeyStatistics%2CfinancialData%2CcalendarEvents&corsDomain=finance .yahoo.com,正如我们在这里看到的: enter image description here

那么,我们如何重新创建它?简单的! :

from bs4 import BeautifulSoup
import requests

r = requests.get('https://query2.finance.yahoo.com/v10/finance/quoteSummary/AAPL?formatted=true&crumb=8ldhetOu7RJ&lang=en-US&region=US&modules=defaultKeyStatistics%2CfinancialData%2CcalendarEvents&corsDomain=finance.yahoo.com')
data = r.json()

这会将 JSON 响应作为 dict 返回。从那里,浏览 dict,直到找到您想要的数据:

financial_data = data['quoteSummary']['result'][0]['defaultKeyStatistics']
enterprise_value_dict = financial_data['enterpriseValue']
print(enterprise_value_dict)
>>> {'fmt': '598.56B', 'raw': 598563094528, 'longFmt': '598,563,094,528'}
print(enterprise_value_dict['fmt'])
>>> '598.56B'

关于python - 使用 BeautifulSoup 搜索雅虎财经,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39218742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com