加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

删去标签的txt内容

发布时间:2023-06-27 15:12:14 所属栏目:教程 来源:
导读:网页中会含有很多的段落,每个段落也会夹杂着不少的标签,但这些都不是我们需要的,所以我们要去掉它们,那么你知道怎么除去标签的txt内容吗?

复制代码 代码如下:

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没有关掉,是怎么都读不进去的。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!