日期:2014-05-20  浏览次数:20759 次

求htmlparser高手,我想取得<p>标签中的文本,但是要移除<<a href=".."中的文本。
我想取得 <p> 标签中的文本,但是要移除 <a   href= ".. "中的文本。我想要抓取一个新闻页中的正文,我发现90%就是的新闻页正文都写在 <p> 标签中,于是我就提取 <p> 下的文本,但是发现有的网站 <p> 下还有 <a   href= ".. "> 广告 <a> ,我想把 "广告   "去掉怎么做啊,试了好久。谢谢。
private String   extractPText(String   content)   {
String   ptext   =   " ";
try   {
Parser   parser   =   new   Parser(content);
parser.setEncoding( "GB2312 ");

TagNameFilter   filter   =   new   TagNameFilter( "p ");
NodeList   nodelist   =   parser.extractAllNodesThatMatch(filter);
System.out.println( "p数量 "   +   nodelist.size());
for   (int   i   =   0;   i   <   nodelist.size();   i++)   {
NodeList   nodelistA   =   nodelist.extractAllNodesThatMatch(filterA);
if(nodelist.elementAt(i).getChildren().toHtml().contains( "a ")){
      nodelist.remove(i);
}
TextExtractingVisitor   visitor   =   new   TextExtractingVisitor();
nodelist.visitAllNodesWith(visitor);
ptext   =   visitor.getExtractedText();

}   catch   (Exception   e)   {
e.printStackTrace();
}
return   ptext.trim();
}

------解决方案--------------------
没遇过,up
------解决方案--------------------
HTTPParser 解析HTML中的Table的行列 手工设定需要解析的table
http://blog.csdn.net/eqxu/archive/2007/06/06/1640699.aspx
用html parser 来获取HTML网页中Form的各个属性名 值组
http://blog.csdn.net/eqxu/archive/2007/05/29/1629820.aspx
------解决方案--------------------
up
------解决方案--------------------
你这个最好用正则来做,首先匹配 <p> 然后匹配 <a> 就可以,具体的你查查资料吧