HTML Parser 对 IFrame 的处理
来源:互联网 发布:黑客用python做什么 编辑:程序博客网 时间:2024/04/18 15:34
近日在研究爬虫相关的东东,用到 HTML Parser,其他的都不说了,网上多的是,对自定义的 tag 有点心得体会,来说说。
一、HTML 简单介绍
用百度百科的话来说:
htmlparser 是一个纯的java写的html解析的库,它不依赖于其它的 java 库文件,主要用于改造或
提取 html。它能超高速解析 html,而且不会出错。
毫不夸张地说,htmlparser 就是目前最好的 html 解析和分析的工具。
无论你是想抓取网页数据还是改造 html 的内容,用了 htmlparser 绝对会忍不住称赞。
用其官方自己的话来说:
HTML Parser is a Java library used to parse HTML in either a linear or nested fashion. Primarily used for transformation or extraction, it features filters, visitors, custom tags and easy to use JavaBeans. It is a fast, robust and well tested package.
二、对于 IFrame 这类常见的 tag,奇怪 HTML Parser 居然会没有(我用的是目前最新的 htmlparser-2.0.jar),网上找了一堆,都似乎没有个好办法,自己慢慢看其 Java Doc 尝试,居然还弄出来了。
首先新建个 Java 工程,创建目录结构 org/htmlparser/tags,并把从官网下载的 htmlparser-2.0.jar 添加到工程,反编译一下 FrameTag.class,参照编写 IFrameTag.java,完整内容如下:
然后编译这个类得到 IFrameTag.class 文件,再用 WinRAR 或者 7Zip 打开官方的 jar 包,把自己编译好的这个 IFrameTag.class 放到 jar 包目录 org.htmlparser.tags 下,这个就得到了一个完整的 jar 包。这时候就可以删除我们工程里自定义的目录结构 org/htmlparser/tags 了。
接下来就是怎么使用了,通常使用可以使用 OrFilter 的组合,通过 extractAllNodesThatMatch 来提取节点。不过在这之前,需要先小小修改一下代码,否则这个自定义的 tag 还是不起作用的。在调用
之后,还需要设置一下(这才是关键)
只有这样,后面通过 extractAllNodesThatMatch 的才能正确提取到这个 tag。
Good luck!
参考文献:
1、HTML Parser 官方主页:http://htmlparser.sourceforge.net/
2、HTML Parser 官方文档:http://htmlparser.sourceforge.net/javadoc/index.html
3、HTML Parser 百度百科:http://baike.baidu.com/view/1174491.htm
- HTML Parser 对 IFrame 的处理
- javascript对html的iframe的操作
- selenium webdriver对iframe的处理
- html对disabled的处理
- Android对HTML的处理
- 解析Html页面:HTML Parser的试用
- HTML Parser的Proper use of HTML
- 解析Html页面:HTML Parser的试用
- HTML parser
- html parser
- HTML::Parser
- Simple Html Dom Parser的使用
- HTML Parser中包含的方法
- 关于HTML Parser的后续解析
- html的iframe用法
- HTML iframe的自适应
- DataGrid对Html标签的处理
- PHP对HTML编码字符串的处理
- 注册表项关于start参数的说明,一直以来都搞错了,竟然还写了个错误的程序禁用本级的一些自启动项,汗呀
- 硬件设计和驱动调试中一些常用的协议下载地址
- 集中注意力,排除干扰
- C 函数:该函数给出一个字节中被置 1 的位的个数
- C#日期时间格式化
- HTML Parser 对 IFrame 的处理
- 用php处理图片水印(文字水印和图片水印)
- Ext2.0 form使用实例(很详细的讲解,强烈推荐)
- MySQL触发器的使用
- java.net.SocketException: socket write error: Connection aborted by peer
- fgrdf
- cakephp学习:大部分动作使用Auth组件来控制权限,但少部分不用,如何实现?
- VC 从网页上下载图片
- select 后面的text显示select中的内容