Board logo

标题: [系统相关] [已解决]如何使用JavaScript或者第三方工具以DOM方式分析WEB网页(HTML) [打印本页]

作者: qzwqzw    时间: 2011-4-27 08:10     标题: [已解决]如何使用JavaScript或者第三方工具以DOM方式分析WEB网页(HTML)

本帖最后由 qzwqzw 于 2011-4-30 17:04 编辑

感谢powerbat提供的htmlfile方案,问题顺利已经解决!

问题根据二楼的回复有所更新
_______________________________________________
因为实际应用所需
寻找一些批处理使用DOM方式分析网页(主要是HTML)的资料
主要是为了实现提取和修改页面表单某些元素的值
因为很少接触这个方面
感觉比较吃力

目前找到的方案
基本上都是使用JavaScript新建IE.Application对象
用IE打开网页后再获取网页的document对象
感觉这种方式效率比较低下
因为IE对网页的渲染会耗费比较多的系统资源
而目前我还未找到直接载入和保存DOM对象的方案

我需要支持DOM的第三方工具
或者可以由WSH解释的JavaScript脚本
这里高手比较多
不知道是否有这方面的专家?
提供参考链接
或者原型化代码均可
作者: firefly    时间: 2011-4-27 10:32

1# qzwqzw

这里有一个关于DOM的Bookmarklet,楼主可以试一下:http://slayeroffice.com/tools/modi/v2.0/modi_help.html

P.S:Bookmarklet就是JS写的书签小程序。
作者: qzwqzw    时间: 2011-4-27 11:08

本帖最后由 qzwqzw 于 2011-4-27 11:16 编辑

嗯,下载并测试了一下
感觉这个Bookmarklet是浏览器内的JS
document对象都是预定义的

而我需要的是WSH解释的文件级JS
document对象需要新建

说的直白些
我不想打开任何浏览器
就可以分析和修改网页的表单元素值

网页是通过curl下载的静态html文件
希望可以通过命令行或者脚本以DOM方式浏览该html文件
作者: qzwqzw    时间: 2011-4-27 13:55

一个类似的页面链接

IE对象模型结合HTML DOM的WEB自动化测试
http://www.51testing.com/html/60/n-205660.html

需求基本满足
只是不想使用IE对象,理由顶楼提到了
作者: qzwqzw    时间: 2011-4-27 14:35

想使用MSXML.DOMDocument处理html
似乎只能载入.xml
不得其门而入
作者: powerbat    时间: 2011-4-27 20:36

有一个htmlfile控件
set dom = CreateObject("htmlfile")
作者: powerbat    时间: 2011-4-27 20:42

批处理、VBS剪贴板操作专题
http://www.bathome.net/thread-8329-1-1.html
作者: qzwqzw    时间: 2011-4-27 22:03

感谢楼上
了解了更多的一种方法
使用以下原型代码测试通过
只是经过测试
发现与InternetExplorer.Application相比
htmlfile的耗费时间不相上下
不知道是什么样的原因?
  1. Set oDOM = GetObject("D:\Test\test2.html", "htmlfile")
  2. Do Until oDOM.readyState="complete" : WScript.Sleep 200 : Loop 'complete
  3. WScript.echo oDOM.body.outerHtml
复制代码

作者: powerbat    时间: 2011-4-27 22:34

都是调用mshtml.dll来解析html的
作者: qzwqzw    时间: 2011-4-27 22:47

那么难道ie的渲染不需要占用更多时间性能吗?
抑或mshtml实现的dom载入就已经包含了渲染?
作者: powerbat    时间: 2011-4-27 23:04

没学过Windows编程,具体也不清楚。

CPU、内存占用等方面应该不同吧
作者: qzwqzw    时间: 2011-4-30 17:28

非常感谢powerbat
问题已经解决




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2