当前位置: 代码迷 >> Java Web开发 >> org.htmlparser.util.EncodingChangeException: character
  详细解决方案

org.htmlparser.util.EncodingChangeException: character

热度:634   发布时间:2016-04-17 10:15:12.0
网页抓取出错,跟编码有关!求助!
报的错误如下:
org.htmlparser.util.EncodingChangeException: character mismatch (new: ? [0xfeff] != old: [0x9518锘]) for encoding change from gbk to UTF-8 at character offset 0
at org.htmlparser.lexer.InputStreamSource.setEncoding(InputStreamSource.java:280)
at org.htmlparser.lexer.Page.setEncoding(Page.java:865)
at org.htmlparser.tags.MetaTag.doSemanticAction(MetaTag.java:150)
at org.htmlparser.scanners.TagScanner.scan(TagScanner.java:69)
at org.htmlparser.scanners.CompositeTagScanner.scan(CompositeTagScanner.java:160)
at org.htmlparser.util.IteratorImpl.nextNode(IteratorImpl.java:92)
at org.htmlparser.Parser.parse(Parser.java:701)
at extraction.Clawer.GetHtmlStr(Clawer.java:76)
at extract_suning.ExtracBaseInfo.main(ExtracBaseInfo.java:28)

不是很明白,求解释,求解决!!

------解决方案--------------------
好像是说编码问题,,你可以尝试修改下你网页或者你class的编码。
------解决方案--------------------
人家是gbk的编码,你所使用的是utf-8的编码,把你的编码转换为gbk就可以(不是class的编码,是你代码里面转换的编码)
------解决方案--------------------
setEncoding("GBK"); //需要指定网页对应的编码
------解决方案--------------------
一般做爬虫,定制爬取的程序一般是这样写,不同的模板用一套程序去分析抓取页面。你可以把网易的页面易变的参数做成xml配置文件,例如有一些这样的参数 编码,正则表达式,列表url。分析某些的参数的 前缀后缀中缀等。我以前写过一套程序 配置了20多家视频网站的模板,来抓取视频内容
------解决方案--------------------
爬取苏宁的时候是将utf-8 当做gbk,将其转换为utf-8,而实际上是不用转换的,试试爬取苏宁的时候把转码那行去掉
  相关解决方案