关于HtmlParser中Parser【org.htmlparser.Parser】这个类奇怪的地方...求解释【已获得解释】...
生活随笔
收集整理的這篇文章主要介紹了
关于HtmlParser中Parser【org.htmlparser.Parser】这个类奇怪的地方...求解释【已获得解释】...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
昨天在使用HtmlParser解析爬蟲爬下的網頁時,用了其中的Parser這個對象來解析網頁,但是一個奇怪的問題出現了,求解釋....
@Testpublic void test() {
Parser parser;
try {
parser = new Parser("http://www.163.com");
parser.setEncoding("gb2312");
NodeFilter title_filter = new TagNameFilter("title");
NodeList nodelist = parser.parse(title_filter);
System.out.println(nodelist.size());
Node title_node = nodelist.elementAt(0);
String title = title_node.toPlainTextString();// 提取title標簽的文本內容
System.out.println(title.trim());
} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
執行之后的結果是:網易 1
當使用parser第二次的時候,問題出現了,難道parser對象使用一次后,會執行什么內部操作?
@Testpublic void test() {
Parser parser;
try {
parser = new Parser("http://www.163.com");
parser.setEncoding("gb2312");
NodeFilter title_filter = new TagNameFilter("title");
NodeList nodelist = parser.parse(title_filter);
System.out.println(nodelist.size());
Node title_node = nodelist.elementAt(0);
String title = title_node.toPlainTextString();// 提取title標簽的文本內容
System.out.println(title.trim());
// parser = new Parser("http://www.163.com");
parser.setEncoding("gb2312");
title_filter = new TagNameFilter("title");
nodelist = parser.parse(title_filter);
System.out.println(nodelist.size());
title_node = nodelist.elementAt(0);
title = title_node.toPlainTextString();// 提取title標簽的文本內容
System.out.println(title.trim());
} catch (ParserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
第一次調用仍讓可以獲得結果:網易,但是執行第二次調用parser來解析title的時候,就解析不出來了,獲取的nodeList也是空了....
求解釋。
------------------------------解釋如下---------------------------------
第二次調用parser對象的時候,需要reset一下。
-----------------------------------------------------------------------
轉載于:https://www.cnblogs.com/matrix1024/archive/2011/12/22/matrix1024.html
總結
以上是生活随笔為你收集整理的关于HtmlParser中Parser【org.htmlparser.Parser】这个类奇怪的地方...求解释【已获得解释】...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分享一下字符串匹配BM算法学习心得。
- 下一篇: sql server 交叉表查询实例-成