分享

浅谈Excel

 快乐的探路者 2014-10-09
本帖最后由 xmyjk 于 2012-6-10 11:55 编辑

借你的帖子讲讲吧,多页数据,我一般的操纵过程:

首先是看。
观察网页的URL,或者是用HTTPFOX看URL和参数,如果POST的,看看是否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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多