python - 美汤缺失数据

标签 python beautifulsoup

我正在使用 beautiful soup 尝试从几个不同的网站上抓取一些财务信息,但我注意到我抓取的内容中缺少大部分 html 信息。我在解析抓取的信息时尝试了 html.parserlxmlhtml5lib,但没有成功。

下面是我在尝试过的两个不同网站上使用的代码示例。在这两个示例中,我都试图检索市值信息,但我似乎从未在我的解析输出中获得它。

#!/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/

相关文章:

python - 将邮箱消息转换为 PDF : which part?

python - 如何在networkx中使用python随机排列图的节点?

python - 如何将 pandas Series 的 "rows"转换为 DataFrame 的列?

python - mysql_exceptions.OperationalError : (1054, "Unknown column ' xxx'在 'field list'“)

python - 如何拆分数据列中的值并将其添加到具有 pandas 条件的新列

json - 解析同时包含 HTML 和 Json 数据的网页

python - BeautifulSoup - 从页面中抓取多个表?

python - 如何使用 python/selenium 通过 css 选择器查找元素

python - 使用 Beautiful Soup 查找包含 unicode 字形的元素

python - 每当触发 else 语句时,如何在 for 循环中创建新列表