用htmlparser提取网页网页总是出现错误(在eclipse下运行的)代码如下

发布于 2021-11-05 11:36:03 字数 1711 浏览 792 评论 5

package rex.simple;

import org.htmlparser.*;
import org.htmlparser.filters.*;
import org.htmlparser.util.*;
import org.htmlparser.visitors.*; 

public class AstroHTMLParserExtractorTest {
public static void main(String[] args){
 String title;
 String constellation;
 String body;
 String summary;
 try{
 Parser parser=new Parser("http://astro.tom.com/sagittarius.html");
 parser.setEncoding("gb2312");
 NodeFilter filter_constellation_summary=new AndFilter(new TagNameFilter("div"),new HasAttributeFilter("class","mcol"));
 NodeFilter filter_title=new AndFilter(new TagNameFilter("div"),new HasAttributeFilter("class","astro_title"));
 NodeFilter filter_body=new AndFilter(new TagNameFilter("div"),new HasAttributeFilter("class","asmaincnt"));
 NodeList nodelist=parser.parse(filter_constellation_summary);
 Node node_constellation=nodelist.elementAt(0);
 constellation=node_constellation.toHtml();
 System.out.println("[WHOLE ASTRO:]n"+constellation);
 parser.reset();
 nodelist=parser.parse(filter_title);
 Node node_title=nodelist.elementAt(0);
 title=node_title.toPlainTextString();
 System.out.println("[TITLE ASTRO:]n"+title);
 
 nodelist=parser.parse(filter_body);
 Node node_body=nodelist.elementAt(0); 
 Parser body_parser=new Parser(node_body.toHtml());
 TextExtractingVisitor visitor=new TextExtractingVisitor();
 body_parser.visitAllNodesWith(visitor);
 body=visitor.getExtractedText();
 System.out.println("nnn");

 System.out.println("[---TITLE ASTRO---]n"+title.trim());
 body=body.replaceAll("t"," ");


 System.out.println("[---body ASTRO---]n"+body.trim());
 }catch(Exception e){
 e.printStackTrace();
 }
 }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

成熟的代价 2021-11-11 09:11:36

高手呀,终于改好了。谢谢!谢谢!谢谢!谢谢!谢谢!

反话 2021-11-10 20:20:40

那错误肯定是 node_body 为 null 导致的

狼亦尘 2021-11-10 12:03:51

这上面的第32行

清欢 2021-11-10 11:57:17

错误是发生在哪一行呢?你的错误中的代码行数和你提供的代码不吻合

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文