VBA 提取网页数据的四种方法 [复制链接]
uranus1997
165
主题
0
好友
261
积分
幼儿园大班
喵~~~
[]
金币 1704 个积分 261 帖子 1510
发消息
最佳答案 13
电梯直达 1 楼
发表于 2008-2-25 0449 只看该作者 倒序浏览 更多 1
本帖最后由 爱疯 于 2012-7-5 1042 编辑
嗯,是 398 部长交给我的一个小练习,发上来共享一下,之后就等 398 部长来解说吧。
一共做了 4 个方法,期间多谢八月梦游的帮助和提点。
题目是提取以下网页里的店铺名称和地址:(没做提取多页的,偷懒)
httpbendi.koubei.comsearchsearchstore.htmloption.cityname=%CE
%C2%D6%DD&option.category=4&option.distance=2000&pageNo=1
1. XMLHTTP 对象,速度不错,受网页源代码改变影响,但是处理网页源文件最方便自由。
2. InternetExplorer 对象,速度一般,受网页源代码改变影响,还需要激活 IE,不喜欢。
3. QueryTables 对象,平均速度最快,而且基本不受网页源代码改变影响,就是想获取多页
数据的时候麻烦,而且多了一个 web 查询区域需要删除。
4. WebBrowser 对象,第一次速度次于 XMLHTTP,之后就很快,受网页源代码改变影响,
原理同 InternetExplorer,就是多了个控件在工作表上不好看,只能靠缩小控件来隐藏。
4 种方法各有优劣,看实际情况来选取合适的方法了。
个人觉得网页提取数据,没有什么技巧可言,归根到底,原理基本都是提取网页的源代码
然后进行分析处理。
在 VBA 里,可能用字符串处理的办法更容易理解,其实也可以用获取网页元素的办法,例
如第 2 和第 4 种方法,就用了一些这样的技巧,但由于对网页的元素不太熟悉,因此如果
要方便的方法,还需要多了解网页的结构和代码才行了。
PS:记得看我家耗子写的火狐浏览器脚本,似乎也只能用枚举办法列出不同网页其源码的
共同地方来写,想 100%通用似乎很难啊。
第一次附件:
8yEsMVej.rar (25.12 KB, 下载次数 1318)
=====================================
评论3