我正在使用 beautiful soup 尝试从几个不同的网站上抓取一些财务信息,但我注意到我抓取的内容中缺少大部分 html 信息。我在解析抓取的信息时尝试了 html.parser
、lxml
和 html5lib
,但没有成功。
下面是我在尝试过的两个不同网站上使用的代码示例。在这两个示例中,我都试图检索市值信息,但我似乎从未在我的解析输出中获得它。
#!/usr/bin/env python
def get_marketcap(security):
from bs4 import BeautifulSoup as bs
from urllib.request import urlopen
loc = 'https://stockrow.com/AAPL'
loc = 'https://www.wolframalpha.com/input/?i=GOOGL+historical+market+capitalization+1.7.2018-1.10.2018'
page = urlopen(loc)
#soup = bs(page, 'html.parser')
#soup = bs(page, 'lxml')
soup = bs(page, 'html5lib')
return soup, name_box
soup,name_box = get_marketcap('AAPL')
最佳答案
所需数据来自 XHR,您可以通过直接 API 请求获取它:
import requests
response_content = requests.get('https://stockrow.com/api/companies/AAPL.json?ticker=AAPL').json()
print(response_content['prices'][0]['close'])
# 219.31
更新
如果您需要表中的值(例如市值值),您可以使用
response_content = requests.get('https://stockrow.com/api/companies/AAPL/key_stats.json?ticker=AAPL').json()
print([item['value'] for item in response_content if item['indicator'] == "MARKETCAP:MRM"][0])
# 1077938914780.0000 # 1077938914780.0000 == 1,077,938.91m
以同样的方式,您可以提取其他值,例如企业值(value)(键 - "EV:MRM"
)、收入(键 - "REVENUE:MRT"
), 等等...只需将 "MARKETCAP:MRM"
键替换为上面代码行中的适当键
关于python - 美汤缺失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52915818/