导航:首页 > 数据行情 > yahoo股票历史数据python

yahoo股票历史数据python

发布时间:2024-04-10 07:24:49

① 为什么python不能从yahoo finance中采集数据了

代码如下:

from pylab import figure, show
from matplotlib.finance import quotes_historical_yahoo
from matplotlib.dates import YearLocator, MonthLocator, DateFormatter
import datetime
date1 = datetime.date( 2012, 1, 1 )
date2 = datetime.date( 2015, 3, 23 )

② 如何使用 Yahoo,Finance stock API 获取股票数据

有三种方法获得数据,具体如下:

1、通过API获取实时数据

请求地址:http://finance.yahoo.com/d/quotes.csv?s=<股票名称>&f=<数据列选项>

具体参数:

s – 表示股票名称,多个股票之间使用英文“+”分隔如:”XOM+BBDb.TO+MSFT”,表示三个公司的股票:XOM,BBDb.TO,MSFT。

f – 表示返回数据列,如”snd1l1yr”。更详细的参见雅虎股票 API f 参数对照表。

2、通过API获取历史数据

请求地址如下:http://ichart.yahoo.com/table.csv?s=<string>&a=<int>&b=<int>&c=<int>&d=<int>&e=<int>&f=<int>&g=d&ignore=.csv

具体参数:

s – 股票名称

a – 起始时间,月

b – 起始时间,日

c – 起始时间,年

d – 结束时间,月

e – 结束时间,日

f – 结束时间,年

g – 时间周期。

例如: g=w, 表示周期是“周"。d表示“日”(day),w表示“周”(week),m表示“月”(mouth),一定注意月份参数,其值比真实数据少1。如需要9月数据,则写为08。

3、通过API获取深沪股票数据

雅虎的API是国际性的,支持查询国内沪深股市的数据,但代码稍微变动一下,如浦发银行的代号是:600000.SS。规则是:上海市场末尾加.SS,深圳市场末尾加.SZ。

③ python读取财经数据

提取日期数据基本语法
from WindPy import w
w.start()
当出现.ErrorCode==-103说明没连接上,要start一下

w.wsd(security, fields, startDate = None, endDate= None , options = None)
opion 可选(period, 日期类型, 货币类型,前后复权)

提取财务数据基本语法
w.wss(security, fields, options = None)

提取板块日序列基本语法
w.wses(sectorCode, fields, startDate = None, endDate = None, options = None)

提取板块日截面数据基本语法
w.wsee(sectorCode, fields, options=None)

提取宏观数据基本语法
w.edb(codes, startDate =None, endDate =None, options=None)

1.日期序列基本语法
ts.get_hist_data(stock,start,end)
注意:1.stock不能是集合,只能单个股票 2.需要带上.sz或.sh 3.没有field,只能取出数据后再切除.

2.pro用法
pro.daily(code, start, end, fields)

tushare引用语句

弊端也很明显,一方面不能stock集合输入,一次只能调取一个股票对应数据,另一方面tushare虽是免费试用,但有权限限制。

基本语法
wb.get_data_yahoo(code, start, end)
wb.DataReader(code, 'yahoo', start, end)

没法添加fields, 虽能集合适用,但出来的索引挺奇怪的

推荐使用定义函数或用for循环批量获取数据

总体感觉wind api最舒服,但需要账号,mac也不能直接调用wind api。还是推荐tushare的pro用法。

小白学习中,请指教=v=

④ 如何利用一些 finance 数据库 api 批量获取股票信息

使用Yahoo API获取股票信息。

⑤ 如何使用python 抓取雪球网页

现在关注一个组合,就会有持仓变动的提示了。不过我觉得这事情挺有意思的。比如可以把很多持仓的数据都抓下来,做一些综合的分析,看看现在网站上被持有最多的股票是哪一支,某一天被调入最多的又是哪一支之类。
于是我决定来抓抓看,顺便借此说说我通常用程序做自动抓取的过程。
Step.1 分析页面
要抓一个网页,首先自然是要“研究”这个网页。通常我会用两种方式:
一个是 Chrome 的 Developer Tools。通过它里面的 Network 功能可以看到页面发出的所有网络请求,而大多数数据请求都会在 XHR 标签下。点击某一个请求,可以看到其具体信息,以及服务器的返回结果。很多网站在对于某些数据会有专门的请求接口,返回一组 json 或者 XML 格式的数据,供前台处理后显示。

另一个就是直接查看网页源代码。通常浏览器的右键菜单里都有这个功能。从页面的 HTML 源码里直接寻找你要的数据,分析它格式,为抓取做准备。
对于雪球上的一个组合页面 粗略地看了一下它发出的请求,并没有如预想那样直接找到某个数据接口。看源代码,发现有这样一段:
SNB.cubeInfo = {"id":10289,"name":"誓把老刀挑下位","symbol":"ZH010389" ...此处略过三千字... "created_date":"2014.11.25"}
SNB.cubePieData = [{"name":"汽车","weight":100,"color":"#537299"}];

cubeInfo 是一个 json 格式的数据,看上去就是我们需要的内容。一般我会找个格式化 json 的网站把数据复制进去方便查看。

这应该就是组合的持仓数据。那么接下来,一切似乎都简单了。只要直接发送网页请求,然后把其中 cubeInfo 这段文字取出,按 json 读出数据,就完成了抓取。甚至不用动用什么 BeautifulSoup、正则表达式。
Step.2 获取页面
分析完毕,开抓。
直接 urllib.urlopen 向目标网页发送请求,读出网页。结果,失败了……
看了下返回结果:
403 Forbidden
You don't have permission to access the URL on this server. Sorry for the inconvenience.

被拒了,所以这种赤裸裸地请求是不行的。没关系,那就稍微包装一下:
send_headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Connection':'keep-alive',
'Host':'xueqiu.com',
'Cookie':r'xxxxxx',
}
req = urllib2.Request(url, headers=send_headers)
resp = urllib2.urlopen(req)
html = resp.read()

header 数据都可以从 Developer Tools 里拿到。这次顺利抓到页面内容。
一般网站或多或少都会对请求来源做一些阻拦,通过加 header 可以搞定大部分情况。
Step.3 提取数据
因为这个数据比较明显,直接用通过一些字符串查找和截取操作就可以取出来。
pos_start = html.find('SNB.cubeInfo = ') + len('SNB.cubeInfo = ')
pos_end = html.find('SNB.cubePieData')
data = html[pos_start:pos_end]
dic = json.loads(data)

dic 就是一个包含数据的字典对象。之后想干什么就随便你了。
对于复杂一点的情况,可以通过 BeautifulSoup 来定位 html 标签。再不好办的,就用正则表达式,基本都可以解决掉。
Step.4 处理数据
因为我想对数据进行持久化存储,并且做展示和分析,所以我用了 django 里的 ORM 来处理抓下来的数据。
# add Portfolio
portfolio, c = models.Portfolio.objects.get_or_create(code=dic['symbol'])
portfolio.name = dic['name']
portfolio.earnings = dic['total_gain']
portfolio.save()
# add Stock
stocks = dic['view_rebalancing']['holdings']
for s in stocks:
stock, c = models.Stock.objects.get_or_create(code=s['stock_symbol'])
stock.name = s['stock_name']
stock.count += 1
stock.weight += s['weight']
stock.save()

Portfolio 记录下组合及其收益,Stock则记录每支股票的被收录数和总收录份额。
对于抓取到的,一般也可以存在文件中,或者直接通过 SQL 存入数据库,视不同情况和个人喜好而定。
Step.5 批量抓取
前面的一套做下来,就完整地抓取了一组数据。要达到目的,还要设计一下批量抓取的程序。
一个要解决的问题就是如何获得组合列表。这个可以再通过另一个抓取程序来实现。然后根据这些列表来循环抓取就可以了。
若要细究,还要考虑列表如何保存和使用,如何处理抓取失败和重复抓取,如何控制抓取频率防止被封,可否并行抓取等等。
Step.6 数据分析
数据有了,你要怎么用它,这是个很大的问题。可以简单的统计现象,也可以想办法深入分析背后隐藏的逻辑。不多说,我也还只是在摸索之中。

⑥ python如何获得股票实时交易数据

使用easyquotation这个库。(不用重复造轮子了)
github地址是:
https://github.com/shidenggui/easyquotation

⑦ 怎样遍历任意股票历史数据要求使用循环。

下载个大智慧就可以了啊

⑧ 解决 pandas_datareader 无法获取雅虎财经数据的问题

pandas_datareader 是重要的 pandas 相关包,原来是 pandas.io.data 方法,用于获取接口数据,比如雅虎财经上的数据或者美联储路易斯安娜分行的数据,但是在最近版本(比如 pandas 0.20)中 pandas.io.data 的方法独立出来称为一个新的包 pandas_datareader 。

雅虎财经和谷歌财经的接口变换频繁。如果用 pip install pandas_datareader ,已经无法得到雅虎财经。

pandas_datareader github Issuse #315 针对的就是雅虎财经接口无法访问的问题, gusutabopb 在 5月21日进行了成功修正,并提供了他修正后的 pandas_datareader 新版本。

该修正版本的安装方法是

安装以后测试获取 google 的股票数据成功。

参考:
Issues with the data reader fetching yahoo finance #315

Error with pulling data from Yahoo Finance

⑨ 如何使用 Yahoo,Finance stock API 获取股票数据

如何使用 Yahoo,Finance stock API 获取股票数据使用 Yahoo,Finance stock API 获取股票数据:打开Yahoo Finance主页(这里不让贴url), 最左边有个小框框(quote lookup),里面输入股票代码点击go就能查到即时股价

阅读全文

与yahoo股票历史数据python相关的资料

热点内容
计提资产减值准备地股票 浏览:286
东阿阿胶股票投资回报率 浏览:705
伊戈达拉股票投资 浏览:861
股票历史APP下载 浏览:45
托普股票什么时候退市 浏览:667
华赛科技股票 浏览:923
被st的股票怎么办 浏览:930
招商银行不能买股票 浏览:474
宜宾纸业股票投资价值分析 浏览:907
股票主力一般做多久 浏览:914
剔除中国名称股票 浏览:78
为什么投资股票都是亏的 浏览:278
st船舶股票走 浏览:603
宇都通信科技股票代码 浏览:866
a股所有股票价格数据在哪里查 浏览:370
创世纪股票的主力 浏览:837
证券市场线下的股票 浏览:972
新兴市场股票选择etf的股票行情 浏览:673
6O1618中国中冶股票行情 浏览:87
股票软件测试策略雪球 浏览:654