- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试从 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®ion=US&modules=defaultKeyStatistics%2CfinancialData%2CcalendarEvents&corsDomain=finance .yahoo.com
,正如我们在这里看到的:
那么,我们如何重新创建它?简单的! :
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®ion=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/
我想开发一个小应用程序来自动从 Google Finance 获取股票价格并将其存储在我的本地机器中以供将来分析。 谁能给我一些如何开始的线索? 我知道一些 C#。它适合这个目的吗? 先感谢您。 最佳
直到昨天以下网址(Google Finance API) https://www.google.com/finance/getprices?q=TSLA&x=NASDAQ&i=3600&p=5d&f=
Google 如何设法正确对齐 google finance url 中“获取报价”搜索框建议下拉列表中的第二列(即代码名称) 示例:如果您输入 iii - 第二列完全对齐。 它不使用固定宽度的字体
我想使用 Google Finance API 转换货币。但它在我的本地机器(印度)上不起作用。当我从位于美国的一台服务器进行访问并提供正确的结果时,它工作正常。 网址:https://finance
我之前试图解释这一点,但显然失败了! 因此,如果您打开了一个 google finance 图表,例如: http://www.google.com/finance?q=INDEXNASDAQ:.IX
我正在努力将财务数据输入谷歌表格。我在这里阅读了一些答案并尝试了这个:=importhtml("https://www.google.com/finance?q="&B2&"&fstype=ii&ei
我是一名优秀的程序员,十分优秀!