点击下方红字获取VBA实例完整代码文件。
================
VBA实例系列,最新更新到48个,点击下方链接进行查看:
https://mbd.pub/o/bread/mbd-YZ6Wlp5t
说明:因为这个实例涉及到对某度的数据请求,大量无效、恶意的请求可能会导致该实例失效。因而请勿随意大量尝试,请谨慎付费!!!
今天就来分享一个快速查询基金代码的VBA实例。
问题描述
如下图,我们搜集整理了一些基金的名称放在A列,需要找到对应的基金代码填入B列。
思路分析
在搜索引擎里面直接搜索关键词,是可以找到我们需要的代码的。基于这个,永恒君的大体思路可以是这样的:
以关键词富国中证医药50ETF
为例
1、在百度里搜索,提取前3页的网页标题。
2、从这些标题当中提取所有的代码。
代码提取结果
3、统计都有哪些非空代码出现过
4、统计这些代码出现的次数频率
5、将出现次数最高的作为基金的代码。
这样,我们就把富国中证医药50ETF
的基金代码找到了。
至此,我们只需要把上面的过程整合一下就可以进行批量处理了。
效果演示
回到开头的那个表格,我们来演示一下效果:
基金代码提取
因为是要进行网络请求,速度自然会受当时的网络环境有影响。不过可以看到,代码都还是都可以提取到的。
效果评测
1)下图是程序提取的代码和永恒君手工查找的代码。
细心点的朋友可能发现了,最后一条国联安中证半导体ETF
代码和手工查找的是不一样的。
经过永恒君反复调试和核对,是因为请求太频繁了,百度开启了安全验证,因而数据就没法抓取了。
百度安全验证源码
故,将需要将请求的速度降下来,虽然提取的时间长了,但结果更让人满意了。
2)平时我们查找基金信息的时候,一般只会记住关键词,类似于基金公司+行业/主题/指数等的模式。
例如全名为汇添富中证主要消费ETF
的基金,代表汇添富公司发行的跟踪中证主要消费指数的etf基金,通常提到的关键词是汇添富 消费ETF
。
也就是说,通常会是在百度里搜索关键词汇添富 消费ETF
,而不是汇添富中证主要消费ETF
。
那类似这样的只输入基金的关键词,还能提取到正确的代码吗?我们来看看
最终效果还是挺满意的。
3)经过测试使用,能够找对大部分的基金代码。但是也因为算法的局限,有可能少部分会提取不到。
如果请求次数太多太频繁,可能提取不到百度的搜索结果。
如果百度搜索到的代码,出现的次数频率相同的情况,提取的代码就可能会不完整或者有误。
再比如搜索的关键词可能会对应多只基金,那么可能会存在不一致的问题。
点击下方红字获取VBA实例完整代码文件,以及分步骤VBA代码。
说明:因为这个实例涉及到对某度网站的数据请求,大量无效、恶意的请求可能会导致该实例失效。因而请勿随意大量尝试,请谨慎付费!!!