日期:2014-05-17 浏览次数:21285 次
/**
* 对新闻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