首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

htmlparser解析网页代码兑现网站自动抓取新闻并定时更新

2012-12-22 
htmlparser解析网页代码实现网站自动抓取新闻并定时更新参加工作快有两年了,一直都是从网上谷歌人家的经验

htmlparser解析网页代码实现网站自动抓取新闻并定时更新
  参加工作快有两年了,一直都是从网上谷歌人家的经验,这次也把自己的开发经验写下来与别人分享下。刚不久,换了一份新工作,新的公司在刚结束了一个网站。网站的新闻内容都是自己编辑添加上去的,全手动的,于是接受任务,做个自动更新新闻内容的功能。
  开始整理思路,第一步通过网站URL得到整个网站新闻链接所有的URL,第二步把得到的URL返回它的源代码,第三步解析出源代码里的内容和标题,第四步存入数据库。最后使用java定时器定时自动更新。
  过程中最棘手的是解析HTML源码,果断决定使用htmlparser,废话少说,上一部分代码。代码部分注释,写的不好,还请指教。

/* * 返回新闻内容 */public static String getContent(String urlpath){Parser parser = new Parser();String content = "";try {parser.setResource(urlpath);//传入urlNodeFilter divFilter = new NodeClassFilter(Div.class);//自定义过滤器NodeList divlist = parser.parse(divFilter);//加载过滤器for(int i=0;i<divlist.size();i++){Node node = divlist.elementAt(i);//遍历所有div标签if (node.getText().toString().equals("div id='zoom'")){content = node.toPlainTextString();//得到指定div内容};}} catch (ParserException e) {// TODO Auto-generated catch blocke.printStackTrace();}return content;}}/* *返回新闻title *  */public static String getTitle(String urlpath)throws Exception{Parser parser = new Parser();parser.setResource(urlpath);parser.setEncoding("gbk");NodeFilter titleFilter = new NodeClassFilter(TitleTag.class);NodeList titleList = parser.parse(titleFilter);String title = "";for (int i = 0; i < titleList.size(); i++) {Node node = titleList.elementAt(i);if (node instanceof TitleTag) {TitleTag titleTage = (TitleTag) node;title = titleTage.getStringText();}}return title;}

定时器在这就不写了,相信大家都能搞定。希望跟大家能共同交流学习哈!

热点排行