python爬股票申购取股票历史数据
作者
在当时的经济形势下,财经常识的重要性益发凸显。出资者们需求了解市场趋势、方针改变、公司财务等方面的信息,以更好地拟定出资战略。接下来,常识将剖析并了解python爬取股票前史数据,期望能够给你带来一些启示。本文目录:1、股票池怎样用python构建2、怎样运用python 抓取雪球网页3、python读取财经数据股票池怎样用python构建答:股票池用python构建的办法是:运用第三方渠道,现在能够运用的是聚宽,比照一下聚宽、优矿、大宽网(现已关闭了),都迥然不同,选哪个都相同。尽管这些渠道都迥然不同,可是代码可不能简略仿制粘贴,由于底层函数库是不相同的,有可能在其他渠道底子用不了某个函数,而且简略仿制到自己电脑中的python的话百分之百用不了。代码的思路是,每个月底进行调仓,选出市值最小的股票交易,去掉ST/*ST/停牌/涨停的股票,然后挑选最小市值的10只,基准是创业板综指,看看成果。python构建数据获取办法是:这儿运用为了接下来的操作需求将必定前史规模的股票数据下载下来,这儿下载开始时间为20160101,到时间为运转代码的时间规模的前史日线数据。这儿以tushare为例, tushare获取前史数据有两种办法。第一种是以迭代前史交易日的办法获取全部前史数据,假定获取三年的前史数据,一年一般220个交易日左右,那么3年需求恳求660屡次左右,假如以这种办法的话,就下载数据的时间只需求1分钟多点的姿态。第二种是以迭代全部股票代码的办法获取全部前史数据,股票数量有大约3800多个,需求恳求3800屡次,可是在积分有限的状况下一分钟最多恳求500次,也就意味着仅下载数据的时间至少需求大约8分钟时间。理论上,你获取的前史规模超越17.3年,那么运用第一种办法才比第二种办法快。怎样运用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 ForbiddenYou 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','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 Portfolioportfolio, c = models.Portfolio.objects.get_or_create(code=dic['symbol'])portfolio.name = dic['name']portfolio.earnings = dic['total_gain']portfolio.save()# add Stockstocks = 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 += 1stock.weight += s['weight']stock.save()Portfolio 记载下组合及其收益,Stock则记载每支股票的被录入数和总录入比例。关于抓取到的,一般也能够存在文件中,或许直接经过 SQL 存入数据库,视不同状况和个人喜爱而定。Step.5 批量抓取前面的一套做下来,就完整地抓取了一组数据。要到达意图,还要规划一下批量抓取的程序。一个要处理的问题便是怎样取得组合列表。这个能够再经过另一个抓取程序来完成。然后依据这些列表来循环抓取就能够了。若要细究,还要考虑列表怎样保存和运用,怎样处理抓取失利和重复抓取,怎样操控抓取频率避免被封,可否并行抓取等等。Step.6 数据剖析数据有了,你要怎样用它,这是个很大的问题。能够简略的计算现象,也能够想办法深入剖析背面躲藏的逻辑。不多说,我也还只是在探索之中。python读取财经数据答:提取日期数据根本语法from WindPy import ww.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= 承受日子中的风雨,韶光仓促流去,留下的是风雨往后的阅历,那时咱们能够让自己的心灵得到另一种安慰。所以遇到阐明问题咱们能够活跃的去寻觅处理的办法,时间告知自己没有什么伤心的坎。常识关于python爬取股票前史数据就整理到这了。
目录
推荐阅读
-
安硕信息无数字群众币概念吗;数字群众币是甚么-(光韵达股票)
股票投资是一种需求长时间持有的投资形式,投资者需求有耐烦以及毅力,一直学习以及调整本人的投资战略,能力正在市场中取得长时间的稳固报...
-
[600684主力资金]上证指数守业板指数剖析,上证指数以及守业板指数的区分
股票投资是一种需求审慎的投资形式,投资者需求有正确的投资理念微风险认识,防止自觉跟风以及适度自信,以避免造成不用要的丧失。上面,本...
-
钢铁股票走势图(钢铁走势行情分析)
重庆钢铁复前权最高为1009元不复权最高为1029元复权就是对股价和成交量进行权息修复,按照股票的实际涨跌绘制股价走势图...
-
目前我国客投资加盟车行业发展怎么样
财经常识的学习和使用需求重视归纳才能的培育。出资者们需求具有商场剖析、危险办理、财物装备等方面的才能,以完成长时间的出资报答。下面...
-
世纪星源股吧通用航空机场建设热潮来袭 哪些港股乘风起飞-
5月17日国务院办公厅发布《关于促进通用航空业开展的辅导定见》(以下简称《定见》),对进一步促进通用航空业开展作出布置。《定见》提...
-
国家能源局:全力做好迎峰度夏电力保障 坚浙江朗迪集团股份有限公司决守住不拉闸底线
7月27日,国务院新闻办举办新闻发布会,国家动力局电力司司长何洋在会上表明,跟着“七下八上”(7月下旬到8月上旬)负荷顶峰期的降临...
-
中欧医疗创新股票c基金经理(重庆购房贷款)
今日,为咱们解说有关2286的常识内容,假如你对2286是什么意思的内容感兴趣的话,能够重视咱们的站,有疑问的话,能够在下方谈论区...
-
603377((01106)铭霖控股)
-
什么时候是买基金的好时间表(买基金什么时候买入支付宝充值提现最合适)
-
创维股票代码(股票群名字)
...
