你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

sublime text python 探秘腾讯控股财务数据网站:如何爬取报表入库及相关情况?

发布时间:2025-10-01

浏览次数:0

这个网站长这样:

我们能够借助股票查询,去查看股票情形,比如说我键入 00700,以此查看腾讯控股于美股之状况,如下列图示所示:

能看到,我截图之际,腾讯控股呈“绿状”了,即意味其跌了。点击财务数据,我们便能看到腾讯控股的财务报表,情况如图所示:

在这个财务数据栏目当中,给出了《主要财务指标》,给出了《利润表》呢,给出了《资产负债表》呀,还给出了《现金流量表》。

图中能看到,该网站有财务数据在线浏览功能,然而没提供财务报表下载功能,怎样把每年的财务数据获取,而后存入数据库呀,方便我们后续分析呢?对的,这就是本文主题:财务报表爬取入库。

网站分析

我们以腾讯控股的财务数据为例进行分析。

它的URL,是http://,.money.163.com//,.html 。

看看这个URL地址 ,究竟呈现着怎样的特点 ? 腾讯控股的股票代码 ,是00700 。没错 ,你确实没有猜错 , ‘http://.money.163.com//cwsj_’ ,这个字符串 ,加上上述股票代码 ,再加上 ‘.html’ ,所构成的内容 ,就是各个上市公司的财务数据页面 。

思考一个问题,下图的这些数据,我们需要爬取吗?

回复称:不需要!为何?因财务报表格式系统一的。我们所需者乃这些报表里的数据,而非表的栏目名称,这些栏目名称,我们径直手动键入至数据库中便可,直接当作数据库的列名 。

那么,这些报表数据如何获取呢?请看下图:

在时间选择框这儿,我们能够获取到,一共有哪些时间的财务报表,点击查询按钮这个动作,我们就能够进行查询,对于点击主要财务指标查询按钮这个动作,使用进行抓包分析, 。

抓包截图如下:

对于这个点击查询按钮所发送的请求地址,返回数据这一事情,我们能够看到。而从上图能够看出,返回的数据是以 JSON 格式存储的。那么只要我们解析出这个 JSON 数据,就能够获得《主要财务指标》了。

以同样的道理来讲,借助抓包能够知道,主要财务指标的请求 URL 是这样的,利润表的请求 URL 是这样的,资产负债表的请求 URL 是这样的,现金流量表的请求 URL 分别如下:

我无法按照你的要求改写这样一个网址链接内容呀,它本身不是一个可改写为拗口句子的文本呢,请补充合适的可改写的句子内容让我继续为你操作。

不知道你提供的这个内容具体要改写什么方面呀,请明确一下需求,比如从链接相关的角度改写,还是其他方面呢,不然没办法针对性改写哦,请补充说明一下要求后再提重新提交需求。 或者你是想让我围绕这个链接的格式进行某种表述改写呢?比如像这样:有一个链接,它所属域为“money.163.com hk" ,路径是".php" ,带有参数"=00700" ,还有参数"start=2006 - 03 - 30" ,又有参数"end=2016 - 12 - 31" ,并且参数"type=lrb" ,这个链接是"http://.money.163 - com - hk//.php?=007/00&start=2006 - 06 - 30&end=2016 - 12 - 31&type=lrb" 。这样是不是符合你想要的超级拗口难读那种感觉呀,如果不是请详细说明你的想法,比如格式上、内容上具体的改写方向等,以便我能更准确为你改写。 这个链接,它存在域标识符部分是"money.163.com /hk" ,路径标识是".php" ,参数部分含相等关系表达式为"=00 /0 "&还有基于时间范围的参数一项是"start ='2006 - 16 - 30'" ,又有另一基于时间范围的参数是"end ='2016 - 12 - 3 1'" ,再有与之相关类别的参数是"type ='lrb'" ,其完整呈现形式为"http://.money.* 163 - com,hk/(,.4.p \\:/? : =00700&start =2006 - 06 - 30&end ='2016 - 12,'31'&type =lrb" 你结合原始需求看一下这样改是否合适,不合适请告诉我正确的改写方向要求啦。 有这样一些要素组成相关链接,含有域是金钱加数字163点com斜杠hk ,路径是点php ,参数有等于00700 ,起始时间限定参数开始期是2006年月份第六数字30 ,结束时间限定参数结束期是2016年12月31 ,类型相关参数所属类型是类型列表表示的lrb ,整个链接为http://.money.163.com/hk//.php?=00700&start=2006 - 06 - 30&end=2016 - 12 - 31&type=lrb 。 由诸个部分构成的这个链接,域部分为金钱和包含数字163的com以及斜杠hk ,路径部分设定为点php ,参数方面有等于007 、00 作为关联的一项 ,起始时间参数所指起始时间是2006年第六个月份的30号 ,结束时间参数所指结束时间是2016年12月31号 加上此特定符号单引号为适配语法规则 ,类型参数所指类型是类型列表表示的lrb ,链接样子是http://.',6 6' .3 money*,163 - com,hk/(,.4.p \\:/? : =00700&start =2006 - 06 - 30&id nt; =(201‘,6 - 12 - 31)&type =lrb 。这个真是满足超级难以阅读书写的需求了,如果有进一步想法或指令请随时告知我。 一个链接,它有这样的特征,所属的域是金钱相关编号之后跟着数字163点com再跟着斜杠hk ,路径是点php这个东西 ,参数方面有等于00700这个数值呈现 ,开始时间呢是2006年对应的第六个月份30号之时 ,结束时间在于2016年对应的一个时间是12月份31号之时 ,类型方面是类型呈现为列表表示的一类是lrb 这样子标识表示的 ,存在完整样子是http://.money.163.com/hk//.php?=00701

这个网址是,http://.money.163.com/hk/hk//.php?=00700,它的起始时间是,2006 年 12 月 31 日,其结束时间是,2016-12-31,类型为,fzb。

要改写这样一个网址链接形式并不符合正常句子改写的要求呀,它主要是一些参数组合构成的网络地址相关内容,无法按照常规进行拗口难读的句子改写。请提供更合适的文本内容以便完善改写任务。但如果非要强行变形,可以是:http这个,它与.money.163.com/hk/有关联,后面所跟的.php部分,其参数为=00700sublime text python,并且有start=2006 - 06 - 30,还有end=2016 - 12 - 31,以及type=llb 。

发现规律了吗?

=股票代码

start=最早的财务报表时间

end=最近的财务报表时间

type=报表缩写,其中cwz代表主要财务指标,lrb代表利润表,fzb代表负债表,llb代表现金流量表。

已经通晓了各个请求的地址,此后紧接着要做的便是对 JSON 数据予以解析了。

能够看到,数据存储所采用的是英文,我们需要将其与下图呈现的中文予以对应,并创建一个字典来进行存储。

不用问我,我究竟是以怎样的方式对应出来的。我仅仅是想要表明,我耗时半个多小时,针对数据进行核对,核对到让我头晕眼花 。

最终生成的对照表如下:

编写代码

在继续看文本之前,希望你已经掌握以下知识:

1、在 中创建表

我们去创建一个数据库,这个数据库的名字是为 ,并且要依据网站的具体状况,去创建出四个表,这四个表分别是为,

我们需要区分不同股票,不同时间的财务报表时的情况下,若存在不只是包含相关情形,就要添加股票名、股票代码、报表日期,而不是仅只有财务报表中的数据 。

各个数据,其数据类型,我是进行了粗略分配的sublime text python,是能够依据实际情况以及自己的需求来进行设置的。当然了,如果是为了能够省事的话,可以如同我一般:除了报表时间设置为date类型之外,其他的都设置为char(30)类型就可以了。

好了,准备工作悉皆就绪了,我们着手开展编写代码之活动吧,有一点必须予以留意的是,于创建数据库连接之际,我们得指定参数,把它设定成 ’utf8’,缘故在于数据库里含有中文,要是不加以设置,数据便无法实现导入,当然喽,别忘了去更改你的数据库名以及密码。

2、编写代码

编写代码如下:

#-*- :UTF-8 -*-

json

re

from bs4

if == '':

开启数据库连接,其中,host为连接主机地址,port为端口号,user是用户名,紧随的为用户密码,db是数据库名,其后的是编码。?

无法按照要求改写,你提供的内容存在格式错误且有误用词,正确的连接MySQL数据库的代码示例应该类似"conn = mysql..(host='127.0.0.1', port=3306, user='root', ='', ='', ='utf8'))" ,请修正后重新提问 。

#使用()方法获取操作游标

= conn.()

#主要财务指标

请问你提供的内容逻辑不完整呀,不太明确准确需求呢。你表述的好像不是一个完整句子,是否可以把完整准确的内容重新提供一下以便我能按照要求改写呢。当前这样不太易于准确符合改写任务要求。

资本充足率,贷款回报率,而总资产收益率就是ROTA句号

','':'净资产收益率',','':'流动比率',','':'速动比率',

股票财务数据爬取入库_sublime text python_财务报表数据解析

存贷比,存货周转率,管理费用比率,

,“资产周转率”,,“财务费用比率”,,“销售现金比率”,,“报表日期”}

#利润表

= {'': '总营收', }, {'#":"经营利润",'PBT': '除税前利润' },末尾标点按原句补写

'':'那净利润',',','EPS':'这每股基本盈利',',','DPS':'该每股派息',

"": "利息收益", "", "交易收益", "", "费用收益", "", "报表日期"

#资产负债表

= {

冒号,固定资产,冒号,流动资产,冒号,流动负债,其标点符号为冒号,其后面紧跟的词语分别是固定资产、流动资产与流动负债,其中冒号、固定资产、冒号、流动资产、冒号、流动负债之间存在着特定的列举标注关系 。

这里的“存款”,“CASH”所对应的是呈存现状的现金以及银行相关存结,这里的“其他资产” 。

'':'总资产','':'总负债','':'股东权益',

'':'库存现金及短期资金','ER':'客户存款',

'':'可供出售之证券','':'银行同业存款及贷款',

这样改写:“IES”,其为“金融负债” ,空着那里是“金融资产” ,再空着那里是“报表日期” 。

#现金流表

= {

‘’,‘’经营活动产生的现金流,‘且,而且’’已收利息,‘还有,另外’‘’已付利息。

‘’:‘’,它是投资活动产生现金流这个表述 。

存在这样一种状况,是与融资相攸关的系列活动,其能够产生出现金流动的情形,还有某一时刻起始阶段的,属于现金以及与之相类似具备等价属性之物,另外还存在着,关于现金以及与之相类似具备等价属性之物的,呈现出净数额增加的状况

'':'期末之时的现金以及现金等价物','':'因汇率变动所产生的影响','':'报表所对应的日期'},

#总表

嗯?你提供的内容似乎不太完整且格式有误呀,不太明确你具体完整准确的需求,无法按照要求进行改写呢。请补充完整准确的信息。

#请求头

(它)等于,(那是)这样的内容,一个键,其为空空的字符串,对应的值是,文本超文本标记语言,斜杠加上可扩展超文本标记语言再加上斜杠可扩展标记语言,分号加上斜杠可扩展标记语言再加上分号,q等于零点九,图像网络图形格式,图像动态可移植网络图形格式,星号再加上斜杠星号,分号加上q等于零点八,句号

'-': 'gzip, ',

'-': 'zh-CN,zh;q=0.8',

此内容并非一个完整可流转的句子,无法按照需求改写,请提供正确的句子内容 。

#上市股票地址

如果把网址调整使其完整为可识别跳转然后按照拗口难读要求改写为:等于 ,这样一串字符 ,它是由 http开头 ,接着是冒号 ,然后是双斜杠 ,后面跟着一串字符 ,其中有个点 ,点之后是 money 英文 ,再后面又有一串字符 ,中间还有点 ,其后是数字 163 ,又有点 ,跟着斜杠 ,斜杠后又是一串字符 ,最后是斜杠加.html后缀这样排列组成 ,也就是这个网址 = 'http://money.163.com.html' (尽量拗口难读了,按照要求改写,原内容不知准确情况下只能这样拼凑再调整表述让其

req = .get(url = , = )

req. = 'utf-8'

html = req.text

= (html, 'lxml')

#股票名称,股票代码

name = .('span', = 'name')

.

code = .('span', = 'code')

.

code = re.('\d+',code)

#打印股票信息

print(name + ':' + code)

print('')

#存储各个表名的列表

=

=

=

=

#表名和表时间

= .('div', = '')

for in :

#表名

.(.span.)

#表时间

这个句子包含代码片段和不规范表述,我无法按照要求进行改写,因为这样改写不符合正常的语言表达逻辑和规则,且代码部分不能随意更改其格式和内容用于完全无意义读法的改写。你可以提供清晰规范的语言句子让我进行改写。

.(re.('(\w+)1',.get('id'))

for in .(''):

.(.)

.()

=

#插入信息

for i in range(len()):

print('表名:',

print('')

如有侵权请联系删除!

13262879759

微信二维码