import java.io.*;
import java.net.*;
import java.util.*;
import org.htmlparser.beans.StringBean;
import org.htmlparser.util.ParserException;
public class Text {
public static void main(String[] args) throws IOException{
Text t = new Text();
try{
System.out.println("请输入所要查询的网址:");
byte buf[]=new byte[100];
int count=System.in.read(buf);
String addr=new String(buf,0,count);
URL url = new URL(addr);
System.out.println(t.getText(url)); }catch(IOException e){
e.printStackTrace();
}
}
public String getText(String url)throws ParserException{
StringBean sb = new StringBean();
try{
sb.setLinks(false);// 设置不需要得到页面所包含的链接信息
sb.setReplaceNonBreakingSpaces(true);// 设置将不间断空格由正规空格所替代
sb.setCollapse(true);// 设置将一序列空格由一个单一空格所代替
sb.setURL(url);//传入要解析的URL
}catch(ParserException e){
log.error(e); }
return sb.getStrings();
}
}
红色处为报错我的意思就是输入网址,能够提取该网页纯文本信息,并输出。
那位大大给个程序啊
import java.net.*;
import java.util.*;
import org.htmlparser.beans.StringBean;
import org.htmlparser.util.ParserException;
public class Text {
public static void main(String[] args) throws IOException{
Text t = new Text();
try{
System.out.println("请输入所要查询的网址:");
byte buf[]=new byte[100];
int count=System.in.read(buf);
String addr=new String(buf,0,count);
URL url = new URL(addr);
System.out.println(t.getText(url)); }catch(IOException e){
e.printStackTrace();
}
}
public String getText(String url)throws ParserException{
StringBean sb = new StringBean();
try{
sb.setLinks(false);// 设置不需要得到页面所包含的链接信息
sb.setReplaceNonBreakingSpaces(true);// 设置将不间断空格由正规空格所替代
sb.setCollapse(true);// 设置将一序列空格由一个单一空格所代替
sb.setURL(url);//传入要解析的URL
}catch(ParserException e){
log.error(e); }
return sb.getStrings();
}
}
红色处为报错我的意思就是输入网址,能够提取该网页纯文本信息,并输出。
那位大大给个程序啊
解决方案 »
- java发送传真
- 求助:.net调用java cxf webservice服务日期类型
- 关于Runtime类中 exec(String[] cmdarray,String[] envp)中参数cmdarray的问题
- Java动态加入菜单,急!
- 不用Myeclipse能用Eclipse配置Struts么?
- 求一个最简单的webservice+ajax最简单的例子~
- 正则表达式匹配一段HTML的问题!
- 你想立刻找到一个每月上万元工资的工作吗?this way ,please.
- 像实现一个简单的文件分类系统..
- myeclips发布的时候出错
- struts1的errors标签问题
- jfreechart热点
log是什么东西?
log4j的logger?
报什么错?少包了?
log是什么东西?
log4j的logger?
报什么错?少包了?
另外log.error(e);这行跑异常时因为你先抛出了ParserException 这个异常
你还是在log.error(e);上边加上一句e.printStackTrace();看看到底是那句抛的异常再说吧。估计到时候就一目了然了
替换为e.printStackTrace();依旧提示错误
还有get.text那也有问题啊log是用的log4j的,不过就算是我导入包了也没有用啊
我用的是slf4j-api-1.6.1.jar+log4j-1.2.8.jar组合
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
我在网上找了一个简单的例子。倒是可以保存html内容。 String addr="http://www.baidu.com/";
URL url = new URL(addr);
InputStream is = url.openStream();
String s;
BufferedReader in = new BufferedReader(new InputStreamReader(is));
StringBuffer sb = new StringBuffer();
BufferedWriter out = new BufferedWriter(new FileWriter("f:\\testhtmlout.txt"));
while((s = in.readLine()) != null) {
sb.append(s);
sb.append(System.getProperty("line.separator"));
}
out.write(sb.toString());
out.close();
in.close();
public class TextExtractingVisitor extends NodeVisitor
Extracts text from a web page.
Usage: Parser parser = new Parser(...);
TextExtractingVisitor visitor = new TextExtractingVisitor();
parser.visitAllNodesWith(visitor);
String textInPage = visitor.getExtractedText();
回阿甘,网上有TextExtractingVisitor但是不能提取纯文本,里面还会包含一些空格,回车等其它的
详见http://www.360doc.com/content/11/0511/02/1947337_115852644.shtml
但是我用它最后的利用url提取纯文本的方式,编译出错