首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python抓取雅虎财务

python抓取雅虎财务
EN

Stack Overflow用户
提问于 2017-04-11 10:24:28
回答 3查看 5.5K关注 0票数 3

因为雅虎财经更新了他们的网站。有些表似乎是动态创建的,而不是实际存储在HTML中(我以前使用BeautifulSoup,urllib来获取这些信息,但这已经行不通了)。我关注的是分析师的表格,例如ADP,特别是前一年每股收益的估计(本年度专栏)。您无法从API中获取此信息。

我发现这个链接对分析师推荐趋势很有效。有人知道如何对这个页面上的主表做类似的事情吗?(链接:来自yahoo的python lxml etree applet信息 )

我试图遵循所采取的步骤,但坦率地说,这超出了我的能力。我只需要把整张桌子还回去,我就能从中挑出一些东西。干杯

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-04-11 13:56:52

为了获得这些数据,您需要打开Chrome DevTools并使用XHR筛选器选择Network。如果您单击ADP请求,您可以在RequestUrl中看到链接。

您可以使用请求库从站点发出请求和解析json响应。

代码语言:javascript
复制
import requests
from pprint import pprint

url = 'https://query1.finance.yahoo.com/v10/finance/quoteSummary/ADP?formatted=true&crumb=ILlIC9tOoXt&lang=en-US&region=US&modules=upgradeDowngradeHistory%2CrecommendationTrend%2CfinancialData%2CearningsHistory%2CearningsTrend%2CindustryTrend%2CindexTrend%2CsectorTrend&corsDomain=finance.yahoo.com'
r = requests.get(url).json()
pprint(r)
票数 4
EN

Stack Overflow用户

发布于 2017-04-12 07:21:03

进一步说,以上的答案和使用的答案,在链接,我张贴在上面。(归功于saaj)。这只会给出我需要的数据集,并且在调用模块时更整洁。我不知道这个参数是什么,但是,没有它,它似乎可以工作。

代码语言:javascript
复制
import json
from pprint import pprint
from urllib.request import urlopen
from urllib.parse import urlencode

def parse():
    host   = 'https://query1.finance.yahoo.com'
    #host   = 'https://query2.finance.yahoo.com'  # try if above doesn't work
    path   = '/v10/finance/quoteSummary/%s' % 'ADP'
    params = {
        'formatted' : 'true',
        #'crumb'     : 'ILlIC9tOoXt',
        'lang'      : 'en-US',
        'region'    : 'US',
        'modules'   : 'earningsTrend',
        'domain'    : 'finance.yahoo.com'
    }

    response = urlopen('{}{}?{}'.format(host, path, urlencode(params)))
    data = json.loads(response.read().decode())

    pprint(data)

if __name__ == '__main__':
    parse()

其他模块(只是在它们之间添加一个逗号):assetProfile financialData defaultKeyStatistics calendarEvents incomeStatementHistory cashflowStatementHistory balanceSheetHistory recommendationTrend upgradeDowngradeHistory earningsHistory earningsTrend industryTrend

票数 1
EN

Stack Overflow用户

发布于 2017-07-27 05:56:22

在GitHub中,c0redumb提出了一个完整的解决方案。您可以下载yqd.py。导入后,您可以通过一行代码获得雅虎的财务数据。

代码语言:javascript
复制
import yqd
yf_data = yqd.load_yahoo_quote('GOOG', '20170722', '20170725')

结果“yf_data”是:

代码语言:javascript
复制
['Date,Open,High,Low,Close,Adj Close,Volume',
 '2017-07-24,972.219971,986.200012,970.770020,980.340027,980.340027,3248300',
 '2017-07-25,953.809998,959.700012,945.400024,950.700012,950.700012,4661000',
 '']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43343285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档