【数量技术宅 | Python爬虫系列分享】实时监控股市重大公告的Python爬虫
实时监控股市重大公告的Python爬虫小技巧
精力有限的我们,如何更加有效率地监控信息?
很多时候特别是交易时,我们需要想办法监控一些信息,比如股市的公告。如果现有的软件没有办法实现我们的需求,那么就要靠我们自己动手,才能丰衣足食。
你在交易看盘时,如果有一个小窗口,平时默默的不声不响,但是如果有公告发布,就会显示公告的信息:这是什么公告,然后给我们公告的链接。这样,既不会像弹窗那样用信息轰炸我们,又能够定制我们自己想要的内容,做到想看就看,想不看就不看,那就很方便了。

爬虫抓取的是东方财富上的上市公司公告,上市公司公告有些会在盘中公布。实时监控的原理,其实就是程序代替人工,定期地去刷新网页,然后用刷新前后得到的数据进行比对,如果一样,那么等待下一个周期继续刷新,如果不一样,那么就把增量信息提取出来,供我们查阅。
利用python爬虫实时监控公告信息四部曲
第一步,导入随机请求头和需要的包

我们使用json来解析获取的信息,使用什么方法解析数据取决于我们请求数据的返回形式,这里使用json最方便,我们就导入json包。

第二步,获取初始的公告数据
我们发现,每一个公告都有一个独有的文章号码:art_code,因此我们以这个号码作为新旧比较的基准,如果新页面的头一个公告的art_code和已有的一致,那么就进入下一个刷新周期,如果不一致,那么说明页面已经更新过了,我们提取最新的报告,同时更新这个art_code,用于下一次比对。

原始url的获取。获取之后,通过json解析其中的内容,得到art_code,覆盖写入在tmp.txt文件中,用于比对。

读取了tmp.txt文件中的art_code,跟页面解析的art_code比对。

第三步,获取公告标题和文章链接
通过json我们基本上已经能够解析出大部分的数据内容。
通过观察网站的公告链接的特点,我们发现主要的差别就是在art_code,因此通过网址链接的拼接,我们就能够得到公告的pdf链接。

第四步,运行我们的程序
程序运行的结果会打印到窗口当中,每当有新的公告发布,程序上就会出现一串新的信息。
最后
自此,我们通过程序把我们要的信息打印到了程序的运行窗口,同时,我们的程序也可以根据我们需求进行强化和扩充。首先,这些信息也可以非常方便的通过接口发送到邮箱、钉钉等平台,起到实时提醒的作用,其次,我们也可以从不同的地方抓取信息,完成所需信息的自定义整合,这些将在我们后续的文章中提到。

【数量技术宅 | Python爬虫系列分享】实时监控股市重大公告的Python爬虫的更多相关文章
- 【数量技术宅|量化投资策略系列分享】股指期货IF分钟波动率统计策略
更多精彩内容,欢迎关注公众号:数量技术宅.想要获取完整策略代码,请加技术宅微信:sljsz01 股指期货分钟级别波动率观察 在A股市场,股指期货是由一揽子股票组成的股票现货指数,所对应的期货.由于期货 ...
- 【数量技术宅|金融数据分析系列分享】为什么中证500(IC)是最适合长期做多的指数
更多精彩内容,欢迎关注公众号:数量技术宅.探讨数据分析.量化投资问题,请加技术宅微信:sljsz01 投资股票指数相比个股的优势 我们在投资股票的时候,如果持仓集中在一只或者有限几只股票上,恰好不幸遇 ...
- 基于邮件系统的远程实时监控系统的实现 Python版
人生苦短,我用Python~ 界内的Python宣传标语,对Python而言,这是种标榜,实际上,Python确实是当下最好用的开发语言之一. 在相继学习了C++/C#/Java之后,接触Python ...
- Python入门系列(六)一篇学会python函数
函数 函数是只在调用时运行的代码块. def my_function(): print("Hello from a function") my_function() 信息可以作为参 ...
- Python入门系列(十)一篇学会python文件处理
文件处理 在Python中处理文件的关键函数是open()函数.有四种不同的方法(模式)来打开一个文件 "r" - 读取 - 默认值.打开一个文件进行读取,如果文件不存在则出错. ...
- 爬虫系列1:python简易爬虫分析
决定写一个小的爬虫系列,本文是第一篇,讲爬虫的基本原理和简易示例. 1.单个网页的简易爬虫 以下爬虫的主要功能是爬取百度贴吧中某一页面的所有图片.代码由主要有两个函数:其中getHtml()通过页面u ...
- python人工智能爬虫系列:怎么查看python版本_电脑计算机编程入门教程自学
首发于:python人工智能爬虫系列:怎么查看python版本_电脑计算机编程入门教程自学 http://jianma123.com/viewthread.aardio?threadid=431 本文 ...
- Python学习系列(八)( 面向对象基础)
Python学习系列(八)( 面向对象基础) Python学习系列(七)( 数据库编程) 一,面向对象 1,域:属于一个对象或类的变量.有两种类型,即实例变量—属于每个实例/类的对象:类变量—属于类 ...
- Python学习系列(七)( 数据库编程)
Python学习系列(七)( 数据库编程) Python学习系列(六)(模块) 一,MySQL-Python插件 Python里操作MySQL数据库,需要Python下安装访 ...
随机推荐
- 放眼SEM现状及发展历程
http://www.wocaoseo.com/thread-187-1-1.html 由于近年来移动应用的基本普及,搜索引擎营销随之进入高速发展时代,应用层次的提升已经成为企业营销策略的一个重要组成 ...
- TCP/IP网络编程之数据包协议
一.概要 在了解了网络字节序之后,接下来就是要讲最最重点的消息协议.数据包是什么呢,数据包可以理解为两个人讲电话说的每一句话的内容.通过大家约定好的方式去理解.达到只有接听电话两个人才懂的东西.在程序 ...
- Laravel 避免 Trying to get property of non-object 错误的六种方法 [新增第六种 data_get]
在使用链式操作的时候,例如: return $user->avatar->url;如果 $user->avatar 为 null,就会引起 (E_ERROR) Trying to g ...
- app转iap
ios打包ipa的四种实用方法(.app转.ipa) http://blog.csdn.net/oiken/article/details/49535369 手动压缩改后缀方式 这种方式与4.1的方法 ...
- The Unique MST(最小生成树的唯一性判断)
Given a connected undirected graph, tell if its minimum spanning tree is unique. Definition 1 (Spann ...
- The Triangle (简单动态规划)
7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (Figure 1) Figure 1 shows a number triangle. Write a program that calc ...
- RedisTemplate: Failed to deserialize payload
问题 org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested exce ...
- 详细分析链表中的递归性质(Java 实现)
目录 链表中的递归性质 前言 LeetCode 上关于链表的一道问题 203 号题目 移除链表中的元素 递归的基本概念与示例 链表天然的递归性 小结 链表中的递归性质 前言 在前面的 链表的数据结构的 ...
- Centos7安装后进不去,死活就要填licence,该怎么办?
遇到这个问题不要麻爪,跟着我做: 1 回车 2 回车 c 回车 c 回车 然后就进入系统了. 要使它联网,点右上角的开关按钮,将PCI Ethernet选择为connect状态. 我的centos7是 ...
- 腾讯云 云开发 部署 Blazor网站
Blazor 应用程序除了在 Github Pages/Gitee Pages等静态资源部署以外,现在你有了一个新的选择,那就是使用云开发静态网站功能来部署啦! 系统依赖 在进行后续的内容前,请先确保 ...