HTML 网页解析技术的一些资料
现在做 Code Manager .SWT 的过程中不可避免的遇到了需要抓存网页以及网页内嵌的一些资源的问题.
现在
MHT 生成已经不成问题, 但是如何探测源文件编码以及把 MHT 解压缩(导出)为可以浏览的 HTML 文件(含图片等)是个大问题,
以及用户可视化编辑页面后重新保存为 MHT 的问题. Java 的 MHT 处理技术目前是有一家美国公司在卖, 还好我也实现了,
正在考虑完善后和他们竞争.
探测编码可以用:
1) 检测 HTTP 头的 Content Type 中的编码;
2) 检测正文中的 Content Type 中的编码.
解析 HTML 可以用两种方案:
1)
转换成 XHTML, 然后用 JDOM 转换成 DOM 树, 这种解析方式比较传统, 但是容错性上还没有做过检测, 这种方式的优点就是用
DOM 的方式便于成块的处理 HTML 以及存储.JSPWiki.org 的 HTML 转 Wiki 标签即用的此项技术.
2) 用 http://htmlparser.sourceforge.net/
的开源纯 Java HTML Parser 来分析, 但是反向存储(由修改后的模型再写回HTML)还没有研究如何使用.
一些资料: http://www.blogjava.net/lostfire/archive/2006/07/02/56212.html
http://scud.blog.javascud.org/post/192.htm
相关文档:
<body>
<iframe name="pic" src=""; width="400" height="300" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe>
<p>
<a href="www.163.com" mce_href="www.163.com" target="pic">网易</a>
<a href="www.sina.com.cn" mce_href="www.sina.com.cn" ......
如果用webbrowser的document去获取IFrame这个对象,随后一定会得到accessdenied的错误,为什么?
找了一下,据说是不能跨域访问...
终于有一天,试了一下,在OnDocumentComplete事件里面返回的dispatch就是iframe的IHTMLWindow2对象,在那里可以操作所有的对象,然后,你想做什么就随你了,不知道如果这个时候保存了这个I ......
<html>
<frameset rows="10%,*">
<frame src="http://g.cn" scrolling="no">
<frameset cols="25%,*">
<frame src="http://g.cn" scrolling="no">
<frameset rows="10%,*">
<frame src="http://g.cn" scrolling="no">
......
今天认真看了些Html代码,觉得html标签实在太多,于是到百度搜了个html标签大全,在这发表下,方便以后查阅
标签大全:
<html>
<head>
<title>标题<title>
</head>
<body>..........文件内容..........
</body>
</html>
1.文件标题
<title>..........</title>
2.文件更新--<meta>
【1】1 ......