日期:2014-05-17 浏览次数:20930 次
/** * 对新闻URL进行解析提取新闻,同时将新闻插入到数据库中。 * * @param url * 新闻连接。 */ public void parser(String url) throws Exception{ try { parser = new Parser(url); //获取标题过滤器 <div id ="contentText" class="txt18">这里是正文</div> NodeFilter titleFilter = new AndFilter(new TagNameFilter("td"), new HasAttributeFilter("class", "txt18")); //获取内容过滤器 <div id ="contentText" >这里是正文</div> NodeFilter contentFilter = new AndFilter(new TagNameFilter("td"), new HasAttributeFilter("class", "p1")); //获取发布日期过滤器 <div class ="time" >这里是正文</div> NodeFilter newsdateFilter = new AndFilter( new TagNameFilter("td"), new HasAttributeFilter("class", "txt12")); //获取发布日期过滤器 <spam class ="media_span" >这里是正文</span> NodeFilter newsauthorFilter = new AndFilter( new TagNameFilter("td"), new HasAttributeFilter("class", "txt12")); String newsTitle = getTitle(titleFilter, parser); parser.reset(); // 记得每次用完parser后,要重置一次parser。要不然就得不到我们想要的内容了。 String newsContent = getNewsContent(contentFilter, parser); // 输出新闻的内容,查看是否符合要求 parser.reset(); String newsDate = getNewsDate(newsdateFilter, parser); parser.reset(); String newsauthor = getNewsAuthor(newsauthorFilter, parser); // 先设置新闻对象,让新闻对象里有新闻内容。 InfoByCollection info = new InfoByCollection(); info.setNewsTitle(newsTitle); info.setNewsContent(newsContent); // 将新闻添加到数据中。 infomationService.insertCollectionInfo(info); } catch (ParserException ex) { Logger.getLogger(InfoByCollection.class.getName()).log(Level.SEVERE, null, ex); } }
------解决方案--------------------
楼主看起来对搜索引擎完全没啥基础概念,建议先把基础概念理解下,然后再问点更具体点问题吧。
先看看这个:
http://baike.baidu.com/view/3492159.htm
再看看这个:
http://www.chinaz.com/web/2012/0221/236263.shtml