注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Search的博客

不断学习中!

 
 
 

日志

 
 

HTMLParser实现对网页元素的过滤  

2012-07-29 16:06:51|  分类: java web开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import org.htmlparser.Node;
import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.tags.LinkTag;
import org.htmlparser.util.NodeList;


public class HTMLparser  {

/**
* @param args
*/
public static void TestHTMLParser() throws Exception
{
String sCurrentLine="";
String sTotalString="";
InputStream inputStream=null;
URL url=null;
HttpURLConnection conn=null;
File file=new File("d:/info.txt");
OutputStream outputStream=null;
outputStream=new FileOutputStream(file);
url=new URL("http://www.ideagrace.com/html/doc/2006/07/04/00929.html");
conn=(HttpURLConnection) url.openConnection();
// TODO Auto-generated catch block
inputStream=conn.getInputStream();
// TODO Auto-generated catch block
BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
while((sCurrentLine=reader.readLine())!=null)
{
sTotalString+=sCurrentLine+"\r\n";
String testTest = null;
try {
testTest = extractText(sTotalString);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
outputStream.write(testTest.getBytes());
}
// TODO Auto-generated catch block
try {
outputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String extractText(String inputHtml) throws Exception
{
StringBuffer text=new StringBuffer();
Parser parser=null;
NodeList nodes=null;
parser=Parser.createParser(new String(inputHtml.getBytes(), "GBK"), "GBK");
 nodes=parser.extractAllNodesThatMatch(new NodeFilter() {
/**
*/
private static final long serialVersionUID = 1L;

@Override
public boolean accept(Node node) {
// TODO Auto-generated method stub
if(node instanceof LinkTag)
return true;
else 
return false;
}
});


 for(int i=0;i<nodes.size();i++)
 {
 Node node=nodes.elementAt(i);
text.append(new String(node.toPlainTextString().getBytes(), "GBK"));
 }
return text.toString();
}
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
HTMLparser test=new HTMLparser();
test.TestHTMLParser();
}

}

  评论这张
 
阅读(124)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017