vba 网页数据抓取(EXCEL自带的功能,我一般的操纵过程是什么?)

优采云 发布时间: 2021-11-30 00:06

  vba 网页数据抓取(EXCEL自带的功能,我一般的操纵过程是什么?)

  就通过你的帖子,多页数据,我的一般操作流程来说一说:

  第一个是看。

  观察网页的网址,或者使用HTTPFOX查看网址和参数。如果是POSTed,看能否用GET获取。然后试试看能不能通过URL来改变页面切换。

  如果可以,那很容易。

  那么,接下来,尝试看看EXCEL本身的功能,可以导入网页数据可以获取数据,如果可以,只需记录一个宏并更改循环即可。

  因为EXCEL的导入功能还是很强大的,只要页面是非跳转或者脚本编写或者框架的,直接源码有TABLE代码,用QUERYTABLE直接获取即可。

  如果无法获取到QUERYTABLE的数量,那么一般的网页是动态页面或者框架页面等,那么我一般会使用HTTPFOX进一步查找网页的真实数据源(一般是第一页改成第二页试试,很容易找到),找到了,后续无非很简单,就是文本处理,可以使用XMLHTTP来处理,后续无非就是调整HTTP头消息、POST 等。部分页面异常,有盗链处理。大多数 XMLHTTP 无法处理它。您需要使用 WINHTTP 对象,但该对象与 XMLHTTP 非常相似。反正也无非是假的COOKIE或者REFERER或者多页跳转。我在论坛上发布了相应的帖子。我已经回答了所有的帮助请求。

  最后,如果是后缀为.asp或.aspx的页面,通常是不正常的。POST 参数具有“_VIEWSTATE”。VIEWSTATE 存储在上一页中。如果你想阅读它,你必须访问以前的业务。这种页面一般比较累。有的时候用IE/WEBBROWSER来处理比较容易,原理也很简单,就是你说的DOM机制,要取数,无非就是找到数据的TABLE,然后去TR ,拿到TD,反正配合FIREBUG。只是去观察。

  最后是一种非常异常的页面,是一种可以禁止跨域访问的框架页面。不管怎样,你搜索我的帖子。后来用一些国外高手写的JAVA函数来锻造一个容器。将框架剥离出来,然后访问读取。

  简而言之,做更多的实践很重要。如果您触摸太多,您就会知道正在处理哪些页面。其实把这块拿到底,不用学太多JAVASCRIPT语言,但是好处多多。例如,如果一个脚本生成一个数据页,则可以使用网页的代码,然后使用MSScriptControl控件直接处理脚本,生成数据流,并导出。

  此外,最近越来越多的页面采用 XML 格式。反正获取到XML样式后,再用XML DOM继续获取。或者,你也可以得到HTML代码,就像你说的,审查,但我使用Microsoft.XMLDOM对象或直接调用HTML文档对象,还有

  LoadXML等方法,加载代码文本,有时可以成功构造XML样式或者HTML样式,也可以用来简化取数的操作。但我很少这样做。总觉得直接用IE的方式比较好。

  最后,在 VBA 中处理网页实际上更加困难。如果你刚入门,有一定的电脑背景,更推荐直接学习AAU软件。优点是库中有很多参考代码,可以导入库或者复制粘贴。发帖很方便,但前提是语法和JAVASCRIPT差不多,最好有相关语言背景。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线