python财务报表分析-用Python爬取东方财富网上市公司财务报表

♚作者:苏克,零基础、转行python爬虫与数据分析博客:https://www.makcyun.top摘要: 现在很多网页都采取JavaScript进行动态渲染,其中包括Ajax技术。有的网页虽然也用Ajax技术,但接口参数可能是加密的无法直接获得,比如淘宝;有的动态网页也采用JavaScript,但不是Ajax技术,比如Echarts官网。所以,当遇到这两类网页时,需要新的采取新的方法,这其中...
摘要由CSDN通过智能技术生成

作者:苏克,零基础、转行python爬虫与数据分析

博客:https://www.makcyun.top

摘要: 现在很多网页都采取JavaScript进行动态渲染,其中包括Ajax技术。有的网页虽然也用Ajax技术,但接口参数可能是加密的无法直接获得,比如淘宝;有的动态网页也采用JavaScript,但不是Ajax技术,比如Echarts官网。所以,当遇到这两类网页时,需要新的采取新的方法,这其中包括干脆、直接、好用的的Selenium大法。东方财富网的财务报表网页也是通过JavaScript动态加载的,本文利用Selenium方法爬取该网站上市公司的财务报表数据。

1. 实战背景 2. 网页分析 3. Selenium知识 4. 编码实现 4.1. 思路 4.2. 爬取单页表格 4.3. 分页爬取 4.4. 通用爬虫构造 4.5. 完整代码

1. 实战背景

很多网站都提供上市公司的公告、财务报表等金融投资信息和数据,比如:腾讯财经、网易财经、新浪财经、东方财富网等。这之中,发现东方财富网的数据非常齐全。

东方财富网有一个数据中心:http://data.eastmoney.com/center/,该数据中心提供包括特色数据、研究报告、年报季报等在内的大量数据(见下图)。

以年报季报类别为例,我们点开该分类查看一下2018年中报(见下图),可以看到该分类下又包括:业绩报表、业绩快报、利润表等7个报表的数据。以业绩报表为例,报表包含全部3000多只股票的业绩报表数据,一共有70多页。

假如,我们想获取所有股票2018年中的业绩报表数据,然后对该数据进行一些分析。采取手动复制的方法,70多页可以勉强完成。但如果想获取任意一年、任意季度、任意报表的数据,要再通过手动复制的方法,工作量会非常地大。举个例子,假设要获取10年间(40个季度)、所有7个报表的数据,那么手动复制的工作量大约将是:40×7×70(每个报表大约70页),差不多要重复性地复制2万次!!!可以说是人工不可能完成的任务。所以,本文的目标就是利用Selenium自动化技术,爬取年报季报类别下,任意一年(网站有数据至今)、任意财务报表数据。我们所需要做的,仅是简单输入几个字符,其他就全部交给电脑,然后过一会儿打开excel,就可以看到所需数据"静静地躺在那里",是不是挺酷的?

好,下面我们就开始实操一下。首先,需要分析要爬取的网页对象。

2. 网页分析

之前,我们已经爬过表格型的数据,所以对表格数据的结构应该不会太陌生,如果忘了,可以再看一下这篇文章:https://www.makcyun.top/web_scraping_withpython2.html

我们这里以上面的2018年中报的业绩报表为例,查看一下表格的形式。

网址url:http://data.eastmoney.com/bbsj/201806/lrb.html,bbsj代表年报季报,201803代表2018年一季报,类似地,201806表示年中报;lrb是利润表的首字母缩写,同理,yjbb表示业绩报表。可以看出,该网址格式很简单,便于构造url。

接着,我们点击下一页按钮,可以看到表格更新后url没有发生改变,可以判定是采用了Javscript。那么,我们首先判断是不是采用了Ajax加载的。方法也很简单,右键检查或按F12,切换到network并选择下面的XHR,再按F5刷新。可以看到只有一个Ajax请求,点击下一页也并没有生成新的Ajax请求,可以判断该网页结构不是常见的那种点击下一页或者下拉会源源不断出现的Ajax请求类型,那么便无法构造url来实现分页爬取。

XHR选项里没有找到我们需要的请求,接下来试试看能不能再JS里找到表格的数据请求。将选项选为JS,再次F5刷新,可以看到出现了很多JS请求,然后我们点击几次下一页,会发现弹出新的请求来,然后右边为响应的请求信息。url链接非常长,看上去很复杂。好,这里我们先在这里打住不往下了。

可以看到,通过分析后台元素来爬取该动态网页的方法,相对比较复杂。那么有没有干脆、直截了当地就能够抓取表格内容的方法呢?有的,就是本文接下来要介绍的Selenium大法。

3. Selenium知识

Selenium 是什么?一句话,自动化测试工具。它是为了测试而出生的,但在近几年火热的爬虫领域中,它摇身一变,变成了爬虫的利器。直白点说, Seleninm能控制浏览器, 像人一样"上

  • 2
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Python上市公司年报文本分析,可以采取以下步骤: 1. 准备工作:首先,需要从相关网站上爬取上市公司的历史新闻文本数据,包括时间、网址、标题和正文。可以使用Python编写爬虫程序,通过分析网站结构,使用多线程或协程提高爬取效率。 2. 数据处理:将获取到的年报文本数据转换为txt格式,并进行数据处理。可以使用Python的文本挖掘方式,例如提取关键词并统计词频。可以使用Python库如NLTK或spaCy进行自然语言处理,使用TF-IDF或词袋模型提取关键词,并计算词频。 3. 结果存储:将分析得到的关键词和词频结果存储到Excel文件中。可以使用Python的pandas库将数据存储到Excel文件中,方便后续的数据分析和可视化处理。 总结起来,Python上市公司年报文本分析包括准备工作、数据处理和结果存储三个步骤。通过爬取上市公司的历史新闻文本数据,使用文本挖掘方式提取关键词和统计词频,并将结果存储到Excel文件中,可以进行更深入的数据分析和洞察。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [基于python上市公司年报新闻文本分类](https://blog.csdn.net/qiqi_ai_/article/details/128969776)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [【Python爬虫实战】3.A股上市公司年报关键词词频分析](https://blog.csdn.net/w646645452/article/details/130623486)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值