2019年6月25日 更新
由于巨潮资讯查询API变更,此文章当中的所涉及代码也进行了相应更新。虽然原代码当前已经失效,但是爬虫的基本逻辑仍然适用。
因此请没有相关基础的朋友们先行阅读此文。实战代码部分请移步至如下链接。
杨风飒:Excel VBA 实战(13) - VBA JS 解析 & 巨潮资讯爬虫更新zhuanlan.zhihu.com上周由于工作原因,需要查找国内上市公司报表以及附注中披露的数据。从深交所网站上下载pdf的时候发现国内上市公司半年报都遵循统一的模式,并且所有http后台数据都指向 巨潮资讯.
http://www.cninfo.com.cnwww.cninfo.com.cn与工商信息查询那个无法逾越的滑动验证码相比,巨潮资讯除了服务器偶尔不给力,出现503之外,其他方面绝对是业界良心。于是周末用java/kotlin简单撸了一个爬虫,除了能够爬取传统的网络数据之外,并打算测试一下针对pdf报表附注的Text Mining.
其间看到了网络上广泛分享的巨潮资讯 python 版爬虫,简单看了下代码,我差点没把夜宵喷到电脑屏幕上。除了通用库之外,作者居然还用到了PhantomJS,一种效率极其低下专门针对反爬虫网站的数据读取策略。
回顾我的kotlin代码之后,觉得甚至不用python,直接采用vba这种上世代 超轻量型 编程语言也能轻松完成任务。于是就有了大家所看到的这篇实战分享。写这篇文章,一是想展示我所设想的爬虫的正确工作方式,二是通过这个实例告诉你VBA也许并没有你所想像的那么不堪。
上代码之前请首先确保
Microsoft HTML Oject Library
引用库已经勾选
![801588bc4c3faef7887b34405869b0f5.png](https://i-blog.csdnimg.cn/blog_migrate/ff567268b71d82fe54e5b3bd00390bd7.jpeg)
![d076b6d5364895ffb452b9a8af7064c8.png](https://i-blog.csdnimg.cn/blog_migrate/ab1aa868bb11fb922ef67800c985e00a.jpeg)
从 “工具” “引用” 中找到相应的库。
再来说一下爬虫的原理。
我所理解的爬虫,即不通过浏览器,直接通过程序来模拟http协议,请求(request) 响应(response)的模式来高