热门推荐
百度指数批量抓取导出提取的工具开发历程
2024-10-31 19:55

http://www.datasharehome.com/bdindex/order/

百度指数批量抓取导出提取的工具开发历程

http://www.datasharehome.com/bdindex_stock/stock_record/?type=stockname
http://www.datasharehome.com/bdindex_stock/stock_record/?type=stockcode

http://www.datasharehome.com/wbindex/order/

1.1 本地安装版
原理:主要根据百度指数以svg折线图显示,右侧有如下坐标轴,各指数是以值按照比例显示。所以可以根据各点的坐标和刻度,反算出各点代表值。

在这里插入图片描述 在这里插入图片描述
图 坐标轴视图 图 matlab接口文件图
此阶段工作分了2部分:1、设置参数搜索,抓取各词坐标,计算数据;2、识别坐标轴刻度。当时和朋友分工,他负责第一部分用.net开发,我负责用matlab开发识别接口,然后生成dll接口,供其调用识别。
此时坐标轴比较规范稳定,所以采用图像识别八皇后算法,对各字符进行分割,然后采用和各特征值比对的方式,识别。

在这里插入图片描述
图 软件界面图
软件界面如上图所示,数据采用了access数据库,采用了webbrowser浏览器,设置好参数(此时还可以在页面设置,可以对不同地区、不同趋势、不同周期数据进行抓取,时间区间的移动采用手动方式,所以可能会有重叠,所以还有去重功能。
此期间,matlab版本的dll接口也经历了3次升级。
优点:识别速度较快,操作较为简单,对服务器请求次数低。
缺点:精度不高,对于变化比较大的极端值情况容易误差大。

1.1服务器升级版
Matlab接口本地安装和调用比较麻烦。所以后面编写了一个sever放在的网络服务器上。
在这里插入图片描述
图 服务器端
原理:采用了windows service 主机,服务端也是用的.net编写,采用的Windows socket方式通信。这样本地只需要把坐标轴参数上传到服务器,服务器识别后返回给本地。
优点:本地安装部署简单,不会出现调用识别问题,可以设置用户注册管理,充值消费。
缺点:服务器开销较大,在线用户过多,容易宕机。
现在网上流传较多的,百度指数提取导出工具 2017.2.22 版本的都是这时候开发的,上面的qq号码也是我的,后来百度指数几经升级,已经不能用webbrowser打开了。

原理:通过selenium控制chrome浏览器,逐个日期移动,获取每个点的拼接图像,这时候百度指数采用的css控制位移的方式来显示数值的,给的一个图片有很多乱码,经过css遮罩后显示如下图所示的字符。通过训练Tesseract,生成自己的识别库,可以达到100%准确率。
在这里插入图片描述
图 数值拼接图
在这里插入图片描述
图 程序多开图
优点:识别率高,没有误差。
缺点:速度慢,通过程序多开,实现了倍数提示,无奈每次只能识别一个数据点,所读还是很慢。对百度服务器的压力也很大。百度指数限制账号请求次数,每个账号达到一定次数后,必须要切换账号和ip。

鉴于前面说的,每个点都要向百度服务器请求一次,所以百度指数经常出现不响应,或者错误。所以百度又进行了升级,这次是一个时间区间进行一次的数据传输,然后通过js加密数据方式,改变了一次已请求的方式,对其服务器的请求大为降低。同时也不再采用图片化的方式,整体来说抓取的难度应该有所下降。

    以上就是本篇文章【百度指数批量抓取导出提取的工具开发历程】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/quote/677.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多