基于网络爬虫的上市公司交易数据共享平台设计_第1页
基于网络爬虫的上市公司交易数据共享平台设计_第2页
基于网络爬虫的上市公司交易数据共享平台设计_第3页
基于网络爬虫的上市公司交易数据共享平台设计_第4页
基于网络爬虫的上市公司交易数据共享平台设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    基于网络爬虫的上市公司交易数据共享平台设计    王勇摘要:本文基于网络爬虫原理,结合文本分析技术,设计了一个上市公司交易数据共享平台(sharing platform for listed company trade data,splctd)。平台能够自动从网络获取a股上市公司的基础信息、交易数据。经过规范化处理,储存到数据库中后,交易数据通过网络服务接口,共享给终端用户,为量化分析、自动化交易、交易策略等相关研究者提供了便捷的数据获取渠道。abstract: the sharing platform for listed company tr

2、ade data (splctd) is designed based on web crawler technology. the platform crawl fundamental information and trade data of listed company from internet website automatically. after normalizing, these data is stored in database and shared through web service for the end user on research purpose.关键词:

3、网络爬虫;上市公司;交易数据;共享平台key words: web crawler;listed company;trade data;sharing platform中图分类号:tp391.3                                       文献标识码:a                  

4、;                文章编号:1006-4311(2019)27-0267-030  引言随着上市制度的发展与完善,越来越多的企业选择上市融资来扩大企业规模。而网络和计算机工具的发展,使得金融工程、量化分析与自动化的程序交易也越来越热门。相关从业者虽然可以从各大门户网站(如新浪财经、网易财经等)在线浏览交易信息,但对于线下的技术分析、量化分析、策略研究等方面,在线浏览的方式还是有很多不便之处。本文基于爬虫原理1,设计了一个上市公司交易数据共享平台(sharing platform for l

5、isted company trade data,splctd),它能够自动从网络上抓取a股上市公司的基本信息和交易数据,经过规范化处理储存到数据库,最后通过网络接口,共享给终端用户使用,为量化分析、自动化交易、交易策略研究者提供便捷的数据获取渠道。1  交易信息平台设计1.1 设计目标基于网络爬虫技术,设计上市公司交易信息共享平台,实现自动获取上市公司股票交易信息,并通过网络接口,将数据共享给终端用户。系统总体结构如图1。1.2 平台功能与主要模块设计平台主要包括以下功能:自动从网络获取所有上市公司的基础信息和交易数据;将数据处理成规范的格式,储存到数据库中;通过开放的网络服务接口

6、,将数据共享给终端用户。平台主要包含了以下模块:数据获取模块,负责生成url地址池,将网络信息抓取下来,并將原始信息传递给数据处理模块。数据处理模块,从抓取的原始信息中提取出所需要的数据,并检查是否为有效数据,如果数据无效,则由数据获取模块重新抓取,最后将有效的数据传递给数据存储模块。数据储存模块,将数据处理成符合平台规范的数据格式,保存到数据库中。数据共享模块,对外部网络用户提供了统一的网络服务接口,共享平台中的数据。由于是开放的信息共享平台,所以没有加入用户管理模块。平台主要功能模块如图2所示。2  关键技术分析需要注意的是,在使用爬虫抓取信息时,需要遵循通用的爬虫规则,首先看网

7、站的robots.txt文件中是否包含了允许抓取的规则,或者在网页的信息中是否存在允许抓取的规则,否则不建议对该网站的数据进行抓取。由于网易财经网站(http:/)的网页信息中明确包含了可以被爬虫索引和追踪链接的说明,所以本文的信息抓取分析工作均以网易财经网站为例。2.1 数据获取模块数据获取模块分为两部分:任务生成模块。可以自动生成所有的url,并放入任务池;爬虫模块。从任务池获取url,然后从网络上获取所需要的交易信息。2.1.1 抓取内容主要抓取了上市公司的基本信息和交易信息,包括以下内容:公司资料。包括公司简介、公司高管、所属行业、所属板块等公司的基本工商信息。股本股东。包括了股本结构

8、、主要股东、流通股东、基金持股等数据。财务数据。包括财务摘要、财务指标、资产负债表、利润表、现金流量表等数据。交易信息。包括收盘价,最高价,最低价,开盘价,前收盘,涨跌额,涨跌幅,换手率,成交量,成交金额,总市值,流通市值。可以抓取历史交易信息和当日交易信息。当公司的基本信息发生变化时,如股东信息、财务数据等,爬虫会自动保存历史数据,并将更新后的数据抓取下来。抓取到的内容主要有两种类型:网页类型的数据和文件类型的数据。抓取内容、以及中的当日交易信息均为网页类型的数据,中的历史交易信息为csv文件类型的数据。由于网页信息的分析和抓取工作类似,csv文件的分析与网页信息的分析不同,故以下分析以抓取

9、公司内容、历史交易信息两项内容为例。2.1.2 抓取url分析公司内容url。经过分析,可知公司资料入口url为:http:/其中,xxxxxx代表交易代码,其他为固定内容。如果要抓取贵州茅台的公司资料信息,则将它替换为600519即可,即最终放入任务池的url为:http:/历史交易信息url。经过分析可知,历史交易信息的入口url为:http:/code参数:长度为7的整数,最左第一位为证券交易所的代码,上交所为0,深交所为1。后六位是交易代码;start参数:交易的起始日期;end参数:交易的终止日期;fields参数:需要获取的交易数值。多个参数之间用英文的分号分隔。具体参数值和含义见

10、表1。假设要抓取贵州茅台从2017年1月1日到2019年5月1日的所有历史交易信息,则最终构造的url为:http:/2.1.3 任务生成模块要构造所有上市公司的交易信息的url地址,只需要对url中的固定部分和参数部分进行拼接,就可以生成所有抓取地址。不同的抓取内容需要拼接不同的参数。最后将所有构造完成的url放入任务池。由于交易信息的数据主要是文本信息,类型比较单一,但是公司数量较多,可以按照平均分配的原则,每个爬虫服务器获取同等数量的抓取任务;或在当前的抓取任务完成后,由爬虫服务器自己从任务池中获取新的任务。2.1.4 爬虫模块该模块将任务池中的url作为参数,向服务器发送http请求,

11、并判断返回信息是否有效。在现实环境下,网络和主机的性能对抓取任务都有影响,所以需要判断服务器的响应状态、返回信息的完整性等。如果服务器没有响应,或返回信息不完整,则需要重新发送相应的请求。如果返回信息有效,则将这些信息传递给数据处理模块进行进一步的处理。同时由于网站对爬虫的使用有限制,可以使用分布式爬虫来完成抓取任务2。2.2 数据处理模块负责接收爬虫返回的原始信息,并将其中的有效信息提取出来,最后处理成符合平台规范的数据格式。2.2.1 网页信息的处理爬虫获取的网页信息是由html语言编写的一种文本文件,它的内容是由成对的格式说明标记组成。所以可以使用文本分析工具、或编程语言提供的正则表达式

12、、第三方的工具库(如python语言中的selenium库、scrapy库等)来进行自动化处理。公司资料信息在html信息的区块段。公司的各项基本属性,如公司名称、注册资本等信息,则位于区块段。区块段的文本指定了不同的公司属性。以贵州茅台为例,html中的区块段为注册资本125,620万元,第一个区块段说明了注册资本字段名是“注册资本”,第二个区块段说明了字段的值,即注册资本为“125,620万元”。模块对所有的区块段進行遍历处理,即可得到所有的字段名和对应的值。2.2.2 文件信息的处理历史交易信息的抓取结果为csv格式的文件。csv文件是用逗号分隔的文本文件。同样可以使用文本分析工具来进行

13、处理。从网易财经抓取的结果来看,历史交易信息的csv文件格式为:第一行是字段名,分别说明了各列数据的含义,有交易日期、开盘价、最高价、最低价、收盘价、涨跌额、涨跌幅、成交量、成交金额、换手率等信息。从文件的第二行开始,则是实际的交易数据。数据按交易日期降序排列。另外,在原始的历史交易信息中,没有对应的公司交易代码,所以在最终写入数据库的时候,需要把交易代码与历史交易信息相关联,防止数据混乱。2.3 数据储存模块数据储存模块筛选掉重复的数据后,将数据整理成符合平台要求的格式,储存到数据库中。若交易数据有缺失,则将对应的url地址重新放入任务池,由爬虫服务器重新获取,并将事件到后台日志,由管理员进

14、一步处理。2.4 数据库设计平台抓取的信息有公司基本信息、财务信息、股本股东变动情况和交易信息,其中交易信息分为历史交易信息和当日交易信息。所以数据库中的设计了5张表,分别储存以上数据。2.4.1 基本信息表记录了上市公司的工商注册信息。主要字段包括:交易所代码、公司交易代码、组织形式、中文简称、办公地址、公司全称、公司电话等信息。2.4.2 财务信息表主要记录了上市公司的主要财务信息。主要字段包括:公司交易代码、收录日期、基本每股收益、每股净资产、营业利润、利润总额、净利润、总资产、流动资产、总负债、流动负债、股东权益等信息。2.4.3 股本股东表记录了股本和股东的变动情况。主要字段包括:公

15、司代码、收录日期、十大流通股东、持有比例、本期持有股、持股变动数、十大股东、持有比例、本期持有股、持股变动数等信息。2.4.4 历史交易信息表主要字段包括:公司代码、交易日期、开盘价、最高价、最低价、收盘价、涨跌额、涨跌幅、成交量、成交金额、换手率等信息。2.4.5 当日交易信息表主要字段包括:公司代码、交易日期、交易时间、成交价、价格变动、成交量、成交额、交易性质(买盘/卖盘)等信息。2.5 数据共享模块模块对外部网络用户提供了统一的网络服务接口3,共享平台中的数据。当终端用户向平台请求数据时,数据共享模块返回类型可以设计成易于程序的处理的数据格式,如json类型的数据。json数据类型是一

16、对花括号括起来的键:值对的形式,即key:value。其中的key是字段名,value是字段的值。以贵州茅台为例,平台对终端用户返回的单条数据格式为:“name”: “贵州茅台”, “code”: “600519”, “date”: “2019-05-22”, “popen”: 894.98, “phigh”: 904.00, “plow”: 880.00, “pclose”: 888.00, “chg”: -7.00, “pchg”: -0.78, “aturnover”: 32042, “voturnover”: 285387, “turnover”: 0.26。如果用户请求了多条数据,则返回信息由多条json数据构成4。3  总结与展望本文提出了一种基于网络爬虫的数据共享平台的设计,主要目标是自动获取上市公司的交易数据,并提供给终端用户使用。平台通过自动生成抓取url,使用爬虫获取到原始的html信息和csv文件,并从中提取出需要的信息,按照数据平台的规范储存到数据库中,最后通过网络服务接口,开放给用户使用。另外,根据上市公司信息披露管理办法的规定,上市公司必须定期披露财报数据,还有临时发布的通告信息等。这些信息主要以pdf文件的方式,发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论