龙空技术网

利用Python获取港股通数据(附代码下载地址)!

菜鸟带你学编程 226

前言:

如今咱们对“python获取微博”大概比较注重,我们都需要了解一些“python获取微博”的相关内容。那么小编也在网摘上汇集了一些对于“python获取微博””的相关资讯,希望朋友们能喜欢,同学们快快来了解一下吧!

通过本文,您将学习到如下内容:

1、如何将html网页保存为图片jpg格式;

2、爬虫相关知识

3、pandas简单应用

微博上有个用户“港股通AiH”,在交易日的下午五点半左右,总会发送港股通的相关交易数据,类似如下:

私信小编007即可获取惊喜大礼包哦!

这个数据,炒股的朋友非常喜欢看,因为可以看出来港资购买了哪些股票(或者卖出)。

当然我们也可以自己做一个同样的功能,将港股通的数据“爬”下来,然后保存为带格式的图片就可以了。

首先要解决的问题是:Python如何将网页数据保存为图片呢? 在我搜索github后,发现了imgkit这个工具,从而间接发现了wkhtmltopdf。

简单思路:

1、首先安装imgkit工具,通过pip install imgkit进行安装,然后需要安装wkhtmltopdf,注意,安装完wkhtmltopdf后,需要设置环境变量path。 当然wkhtmltopdf还有一个非常好用的功能,比如网页截屏,假如网页很长很长,可以在cmd下运行 wkhtmltoimage baidu.jpg, 这样就可以将网页保存为图片。

2、去港交所爬数据,港交所的“每日数据”网址:;select5=0&select3=0&select1=13&select2=10

因为不需要用户名密码登录,所以爬取数据相对简单。通过chrome浏览器的检查项,可以看出查询后台,请求的网址为:

可以看出网址中的20181115即为日期数据,更改这个链接就可以获取任意日期的数据。

3、分析数据,由于港交所没有“净买入”这一栏数据,因此需要用买入减去卖出进行计算。

请求获取到的数据其实是json,因此需要将json数据转换为python中的字典,这样比较容易处理。

4、最后将所有的数据都保存在了一个二维数组里面,类似如下:

a = [ ['600519', '贵州茅台', '682,797,634', '421,183,668', '1,103,981,302', 261613966], ['600030', '中信证券', '204,142,874', '436,759,864', '640,902,738', -232616990], ['601318', '中国平安', '289,605,466', '231,404,060', '521,009,526', 58201406], ['600276', '恒瑞医药', '274,641,226', '72,993,085', '347,634,311', 201648141], ['600887', '伊利股份', '144,661,807', '145,628,610', '290,290,417', -966803], ['600036', '招商银行', '219,488,485', '51,441,659', '270,930,144', 168046826], ['600585', '海螺水泥', '99,773,863', '129,079,315', '228,853,178', -29305452], ['603288', '海天味业', '51,373,719', '111,109,654', '162,483,373', -59735935], ['601601', '中国太保', '123,534,064', '37,431,843', '160,965,907', 86102221], ['601688', '华泰证券', '63,584,935', '92,269,814', '155,854,749', -28684879]]

但是这个数据需要排序,即按照最后一列的数据,从大到小排序,即按照净买入排序。 对于这种二维数据的排序,一开始我想到了使用numpy进行排序,但是在使用numpy.array()的时候,净买入由int型转换为了string类型,导致排序是按照字符类型排序,达不到我想要的按照数值大小排序。 后来也想到了通过设置dtype进行类型转换,但是dtype还是有局限,因为dtype只能处理[(),(),()]这种类型的数据,而处理不了[[],[],[]]这种类型的二维数据,这可能是numpy的一个局限。 从而果断放弃numpy,使用了pandas,最后很方便的进行了二维数组排序。

代码运行生成的图片如下(2018-11-15日的数据):

代码下载地址:

标签: #python获取微博