返回信息流小弟最近在 用HtmlParser库 提取网页内容,在winXP下的eclipse中运行没问题,
但是到linux下命令行方式重新编译后,可以运行,但提取的内容中中文显示为“?”,
就是问号,如下图。
windows及linux都是使用的jdk1.6.linux是Fedora3。
附代码,提取的网页就是保存的本地的论坛页面,求大神指教。
挺急的,但是,@nuanyangyang 还真有点不好意思呢,毕竟不认识啊[ema13]
package huhpcombin;
import java.io.File;
import java.io.FileWriter;
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.TagNameFilter;
import org.htmlparser.util.NodeList;
public class ForumTCT {
public static void main(String[] args) throws Exception {
Parser parser = new Parser("/root/wie/GatewayTst/WebPageSample/bbs/1.htm");//html input.
parser.setEncoding("gb2312");//charset encode.
NodeFilter filter_text = new AndFilter(new TagNameFilter("div"),
new HasAttributeFilter("class","a-content-wrap"));//content filter.
NodeList nodelist = parser.parse(filter_text);//nodelist of content.
Node[] nodes = nodelist.toNodeArray();//trans to array.
StringBuffer buftext = new StringBuffer();
String line = null;
for(int i=0; i<nodes.length; i++) {//add content to buftext.
line = nodes[i].toPlainTextString();
System.out.println(line);
if(line != null){
buftext.append(line);
}
}
String body = buftext.toString();
File file = new File("/root/wie/GatewayTst/DataExtr/bbs/1.txt");
synchronized (file) {
FileWriter fw = new FileWriter(file);
fw.write(body);
fw.close();
}
}
}
这是一条镜像帖。来源:北邮人论坛 / java / #36650同步于 2014/11/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
在linux下 用HtmlParser库 提取网页正文 出现乱码
Poet
2014/11/26镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
【 在 nuanyangyang 的大作中提到: 】
: 试试jsoup吧,那个org.htmlparse好像挺老的了。
我在做Jsoup跟Htmlparser的比较,问题是相同的,
都是windows下可以提取,到linux下就是乱码了。
不知暖神有没有遇到过这种问题。
【 在 Poet 的大作中提到: 】
: 我在做Jsoup跟Htmlparser的比较,问题是相同的,
: 都是windows下可以提取,到linux下就是乱码了。
: 不知暖神有没有遇到过这种问题。
怀疑是字符集的问题。欢迎来到现实世界。你猜文件的字符集很有可能会猜错,网页里标称的字符集也有可能是错的。试试用juniversalchardet来帮你猜猜字符集。https://code.google.com/p/juniversalchardet/
【 在 nuanyangyang 的大作中提到: 】
:
: 怀疑是字符集的问题。欢迎来到现实世界。你猜文件的字符集很有可能会猜错,网页里标称的字符集也有可能是错的。试试用juniversalchardet来帮你猜猜字符集。https://code.google.com/p/juniversalchardet/
嗯哪,我试试。