最近随着首批科创板的公司正式开市交易,一百多家科创公司的信息也逐渐披露与完善,虽然购买的要求很高,限制也较大,但是。。。嗯。。。买不起就是买不起~虽然没条件买,但是深入了解下各个公司的数据信息还是可以的。

本文主要分析与获取所有科创公司的基本数据及下载其相关的文件。

完整代码的GitHub地址如下:GitHub

爬取的网址为上交所网站中的上交所科创板,地址为:http://kcb.sse.com.cn/renewal/

通过分析可以看到,所有科创公司信息展示在项目动态的表格中,包括发行人全称、审核状态、注册地、证监会行业、保荐机构、律师事务所、会计师事务所、更新日期、受理日期等主要信息,点开某个公司后,进到该公司的详细信息说明页,如下:

主要内容包括该公司的注册进程、项目基本信息、信息披露、问询与回复、上市委会议公告与结果、注册结果通知等主要内容,其中,问询与回复、上市委会议公告与结果、注册结果通知这三部分又包含对应的文件信息,点击可查看对应的文件内容及相关说明文件。

此次获取的信息包括项目动态中的所有内容、项目基本信息、信息披露等内容,暂不包括 问询与回复、上市委会议公告与结果、注册结果通知三个表,有需要的同学可以参考解析信息披露的方法,可如法炮制。

解析的部分不做过多的说明,通过beautifulSoup与lxml库可以轻松的解析网页内容,比较麻烦的一点是一次获取项目动态表格中所有公司的数据,通过分析可以看到,点击下一页,网页的链接并没有发生变化,可能是通过Ajax异步调用与加载数据。

通过F12 -> Source -> kcb.see.com.cn -> renewal -> (index)分析如下:

'pageHelp.pageSize':20,对应每页的20条数据,在第359行可以看到,通过调用container.getDataByAjax(url, utils.mergeJson(params,p),getNum);方法获取加载的所有数据,此时可以在改行打个断点,刷新页面后,修改pageHelp.pageSize的值后,点击运行下一步,便可以在页面上获取所有的数据,如下:

此时项目动态的表格中显示所有的数据如下,目前共有142条数据(截止至7月6号)。

此时在 Elements 中选中 <html> 标签,右键 copy -> copy outerHTML,获取当前页所有展示的所有 html信息:

注:由于网页的内容是由接口获取并在浏览器端渲染,而非在服务器端渲染后返回的方式,通过直接查看页面源代码只能看到加载的js方法,不包含数据信息,所以可以采用如上的方式获取真实的所有数据。

代码运行结果如下:

1. 项目动态表格中的数据

2. 对应下载的相关文件

关键部分的代码如下:

    def disclosure_info_analysis(self, html, company_name):"""解析信息披露表格,并下载对应的披露文件:param html::return:"""struct = etree.HTML(html)# 记录信息披露表格内容publish_info = {}for report_key in self.PUBLISH_REPORT.keys():# 记录每份披露文件信息report = {}for type_key, type_value in enumerate(self.PUBLISH_TYPE):# 每个披露文件对应的三种信息one_publish_info = {}time = struct.xpath('//*[@id="tile' + report_key + '"]/td[' + str(type_key + 1) + ']/a/text()')# 不存在 time,默认为 '-'if len(time) == 0:one_publish_info['url'] = '-'one_publish_info['time'] = '-'one_publish_info['title'] = '-'else:url = struct.xpath('//*[@id="tile' + report_key + '"]/td[' + str(type_key + 1) + ']/a/@href')title = struct.xpath('//*[@id="tile' + report_key + '"]/td[' + str(type_key + 1) + ']/a/@title')one_publish_info['time'] = time[0]one_publish_info['url'] = url[0]one_publish_info['title'] = title[0]# 下载 pdf 文件self.pdf_download(company_name, title[0], url[0])report[type_value] = one_publish_infopublish_info[self.PUBLISH_REPORT[report_key]] = reportresult = str(publish_info).replace("'", "\"")# 写入信息披露至 self.DISCLOSURE_INFO_FILEfile_path = self.ROOT_PATH + os.altsep + company_name[0] + os.altsep + self.DISCLOSURE_INFO_FILEwrite_html(file_path, result)

总结

虽然爬取的数据拿到了,但是代码中依然存在需要优化与改进的内容,主要包括:

1. 下载速度:可以使用python的异步协程加速下载文件;

2. 准备工作:解析网页源码过于繁琐,可以尝试深入分析接口数据。

科创板公司数据信息爬取相关推荐

  1. 科创板申报企业信息爬取入库(webdriver+xpath+pymysql)

    目标 科创板开板以来,申报企业数量不断增加,目前已逾150家,拟通过爬虫获取所有申报企业的基本信息,例如审核状态.省份.行业.保荐机构.律师事务所.会计师事务所.保荐人.签字会计师.签字律师等信息. ...

  2. 中国近三年上市公司信息统计(主板、创业板、科创板)-web数据可视化(d3.brush-时间选择器)

    1.先看效果. 哔哩哔哩在线解读演示: 中国近三年上市公司信息统计(主板.创业板.科创板)-web数据可视化(时间选择器)-000009_哔哩哔哩_bilibili 中国近三年上市公司信息统计(主板. ...

  3. 生成osm文件_超酷城市肌理!地理数据信息爬取方法大全(B篇)DEM+POI+OSM

    WENWEN:这一弹是对第一弹的补充和深化讲解,上一弹请点击常用的地理数据信息爬取方法大全(前期场地信息获取第一弹),关于DEM获取地形地理空间数据云提交任务一直在排队的问题,这个应该是官网的问题,不 ...

  4. 12306列车车次时刻表数据信息爬取

    转载于:https://www.cnblogs.com/shook/p/11222677.html

  5. 海光信息将于科创板上市:估值900亿,争夺“国产CPU第一股”

    数据智能产业创新服务媒体 --聚焦数智 · 改变商业 估值将超99%科创板公司,海光凭什么? 2021年11月8日,海光信息与中信证券签署IPO辅导协议,拟在科创板上市.截至2022年3月1日,海光信 ...

  6. UCloud科创板上市获受理,相关文件披露重要经营信息

    UCloud上市科创板相关文件已被上海证券交易所受理,股权结构.主要财务指标.上市标准及未来战略全数公开. 近日,UCloud上市科创板相关文件已经正式被上海证券交易所受理,拟融资金额47.48亿元, ...

  7. 科创板一年突破1.7万亿的最全真相 | 钛媒体封面特刊

     关注ITValue,看企业级最新鲜.最价值报道! 一年前的6月13日10点04分,足以载入中国资本市场史册的时刻到来了--国务院副总理刘鹤.上海市委书记李强.时任上海市市长应勇.证监会主席易会满共同 ...

  8. 吉利汽车、京东数科、盛美半导体……来了解下科创板排队的“高研值”企业...

    关注ITValue,看企业级最新鲜.最价值报道! 图片来源@视觉中国 | 落地一年多以来,科创板取得了骄人"战绩".数据显示,2020年前三季度,科创板IPO数量和融资额分别为11 ...

  9. 科创板开市两周年 | 2021最具创新力科创板上市公司、最具价值科创板上市公司等榜单揭晓...

    北京2021年8月2日 /美通社/ -- 7月30日,由上海市徐汇区人民政府.上海报业集团指导,界面财联社|科创板日报主办.上海市徐汇区金融服务办公室联合主办的"科创板开市二周年" ...

最新文章

  1. jQuery 之正则表达式篇
  2. 「LOJ 2289」「THUWC 2017」在美妙的数学王国中畅游——LCT泰勒展开
  3. Python基础day06【匿名函数lambda、列表生成式、集合set、文件读写】
  4. Python基础学习----参数和返回值
  5. python plotly 弹出子图_python – 在plotly中添加组条形图作为子图
  6. P1110 [ZJOI2007]报表统计
  7. 这才是牛逼程序员的标配!
  8. 小程序wx.getRecorderManager()录音管理
  9. 分享程序员成长故事 解析IT职场困惑
  10. 【UI插件】开发一个简单日历插件(上)
  11. 尚硅谷JDBC笔记(带源码)——了解数据库,看这一篇就够了
  12. CANoe 入门 Step by step系列(二)CAPL编程
  13. “包”治百病,BOS丰富的预付费资源包来了
  14. QT窗口嵌入桌面内部(在桌面图标之上):可以实现自定义桌面
  15. 汽车电子之功能安全介绍
  16. 公交换乘系统c语言,数据结构课程设计报告(公交换乘).docx
  17. 9 个非常实用的网络调试命令,你会用几个呢?
  18. 6月12gta5服务器维护,gta520176月11日这会更新什么了 | 手游网游页游攻略大全
  19. android 注解和反射 (入门以及使用)
  20. 欺骗的艺术:为何Tor大陆被禁止,为何俄罗斯美国成漏洞榜一二,网络安全带你揭秘...

热门文章

  1. 深度学习论文精读05——用于乳腺癌组织病理学图像分类的深度特征
  2. TPM分析笔记(十)TPM 组织架构(TPM hierarchy)
  3. IDEA 远程断点调试
  4. js鼠标放上去和移出事件
  5. 电脑计算机桌面什么安装,一般的软件是怎样安装到电脑桌面上的?
  6. 随手科技累计用户超3亿 领跑互金App
  7. FluentAPI 学习
  8. IE6/7常用的hack
  9. 华为微信平行世界怎么添加服务器,华为手机开启这个设置,居然能同时登陆3个微信...
  10. mysql初始数据库出错_安装MySQL提示initialize database(初始化数据库)错误解决方法...