删去标签的txt内容
发布时间:2023-06-27 15:12:14 所属栏目:教程 来源:
导读:网页中会含有很多的段落,每个段落也会夹杂着不少的标签,但这些都不是我们需要的,所以我们要去掉它们,那么你知道怎么除去标签的txt内容吗?
复制代码 代码如下:
NodeList body_nodes=this.getParser().pa
复制代码 代码如下:
NodeList body_nodes=this.getParser().pa
网页中会含有很多的段落,每个段落也会夹杂着不少的标签,但这些都不是我们需要的,所以我们要去掉它们,那么你知道怎么除去标签的txt内容吗? 复制代码 代码如下: NodeList body_nodes=this.getParser().parse(body_filter); for(int i=0;i<body_nodes.size();i++) { Node node=body_nodes.elementAt(i); Parser body_parser=new Parser(node.toHtml()); TextExtractingVisitor visitor=new TextExtractingVisitor(); body_parser.visitAllNodesWith(visitor); body.append(visitor.getExtractedText()); } TextExtractingVisitor,visitAllNodesWith等类及方法都是Visitor中比较很重要但也很少见的。 下面附源代码: 复制代码 代码如下: import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Date; import org.htmlparser.Node; import org.htmlparser.NodeFilter; import org.htmlparser.Parser; import org.htmlparser.filters.AndFilter; import org.htmlparser.filters.HasAttributeFilter; import org.htmlparser.filters.HasChildFilter; import org.htmlparser.filters.TagNameFilter; import org.htmlparser.util.NodeList; import org.htmlparser.visitors.TextExtractingVisitor; import com.extractor.Extractor; public class ExtractorHangdian extends Extractor{ public void extract() { BufferedWriter bw=null; String indextime; String title; StringBuffer body=new StringBuffer();; NodeFilter time_filter=new AndFilter(new TagNameFilter("font"),new HasAttributeFilter("color","#808080")); NodeFilter title_filter1=new AndFilter(new TagNameFilter("td"),new HasChildFilter(new TagNameFilter("b"))); NodeFilter body_filter=new AndFilter(new TagNameFilter("td"),new HasChildFilter(new TagNameFilter("p"))); try { NodeList title_nodes=this.getParser().parse(title_filter1); Node node=title_nodes.elementAt(0); NodeList node2=node.getChildren(); //title=node2.elementAt(0).toHtml(); /* '/r/n' */ //title=node2.elementAt(1).toHtml(); /*font color="#000080" style="font-size:14.4px*/ //title=node2.elementAt(2).toHtml(); /* b */ title=node2.elementAt(3).toHtml(); /* 教材征订及教师用书登记通知 */ bw=new BufferedWriter(new FileWriter(new File(this.getOutputPath()+title+".txt"))); String url_seg1=getInputFilePath().substring(3,30); int end=getInputFilePath().lastIndexOf("."); String url_seg2=getInputFilePath().substring(30, end); String url_seg=url_seg1+".asp?"+url_seg2; url_seg=url_seg.replaceAll("////","/"); String url="http://"+url_seg; bw.write(url+NEWLINE); bw.write(title+NEWLINE); } catch(Exception e) { e.printStackTrace(); } this.getParser().reset(); try { NodeList time_nodes=this.getParser().parse(time_filter); Node time_node=time_nodes.elementAt(1);//这里的“1”表示符合time_filter的第二个元素 indextime=time_node.getNextSibling().toHtml(); bw.write(indextime+NEWLINE); } catch(Exception e) { e.printStackTrace(); } this.getParser().reset();//得到除去标签的所有txt文本 try { NodeList body_nodes=this.getParser().parse(body_filter); for(int i=0;i<body_nodes.size();i++) { Node node=body_nodes.elementAt(i); Parser body_parser=new Parser(node.toHtml()); TextExtractingVisitor visitor=new TextExtractingVisitor(); body_parser.visitAllNodesWith(visitor); body.append(visitor.getExtractedText()); } bw.write(body+NEWLINE); } catch(Exception e) { e.printStackTrace(); } try { if(bw!=null) bw.close(); }catch(IOException e) { e.printStackTrace(); } } } 这里要注意,若是bw没有关掉,是怎么都读不进去的。 (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐