原创文章,转载请注明。

爬虫往往会遇到乱码问题。最简单的方法是依据http的响应信息来获取编码信息。但假设对方站点的响应信息不包括编码信息或编码信息错误,那么爬虫取下来的信息就非常可能是乱码。

好的解决的方法是直接依据页面内容来自己主动推断页面的编码。

如Mozilla公司的firefox使用的universalchardet编码自己主动检測工具。

juniversalchardet是universalchardet的java版本号。

源代码开源于 https://github.com/thkoch2001/juniversalchardet

自己主动编码主要是依据统计学的方法来推断。详细原理。能够看http://www-archive.mozilla.org/projects/intl/UniversalCharsetDetection.html

如今以Java爬虫经常使用的httpclient来解说怎样使用。看下面关键代码:

UniversalDetector encDetector = new UniversalDetector(null);while ((l = myStream.read(tmp)) != -1) {buffer.append(tmp, 0, l);if (!encDetector.isDone()) {encDetector.handleData(tmp, 0, l);}}
encDetector.dataEnd();
String encoding = encDetector.getDetectedCharset();
if (encoding != null) {return new String(buffer.toByteArray(), encoding);
}
encDetector.reset();
myStream.read(tmp)) 读取httpclient得到的流。我们要做的就是在读流的同一时候,运用juniversalchardet来检測编码,假设有符合特征的编码的出现,则最后可通过detector.getDetectedCharset()
能够得到编码。否则返回null。至此,检測工作结束。通过String的构造方法来进行按一定编码构建字符串。

用juniversalchardet解决爬虫乱码问题相关推荐

  1. 解决爬虫中文乱码问题

    解决爬虫中文乱码问题 今天群里有个人反映某个网址爬出来的网页源代码出现中文乱码,我研究了半天,终于找到了解决方法. 一开始,我是这样做的: import requestsurl = 'http://s ...

  2. python学习笔记分享(四十)网络爬虫(7)反爬虫问题,解决中文乱码,登陆和验证码处理

    网络爬虫深度知识 一.反爬虫问题 (一)反爬虫原因 1.网络爬虫浪费了网站的流量 2.数据是私有资源 3.爬虫协议与原则 (二)反爬虫方式 (三)反反爬虫 1.原理 2.三种方法 二.解决中文乱码 ( ...

  3. 爬虫学习----解决中文乱码

    一.字符编码 在编程的过程中,我们会遇到中文乱码的问题.要解决中文乱码我们就要了解计算机的字符编码,计算机有很多编码方式,因为计算机只能处理数字,因为处理文本的话,就必须先转化为数字.最早的时候计算机 ...

  4. 爬虫过程中解决html乱码和获取的文本乱码问题

    爬虫过程中解决html乱码和获取的文本乱码问题 response1 = requests.get(url=detail_url, headers=headers) responseText1 = re ...

  5. Python爬虫中文乱码问题(爬虫乱码)

    在输出内容时,出现如下图的情况: 解决爬虫中文乱码的步骤 网址编码为gbk 查看网页源代码的head部分的编码: <meta http-equiv="Content-Type" ...

  6. sqlserver mysql 乱码_SQLServer数据库如何解决中文乱码问题?方法有哪些?

    很多使用数据库的人都知道,在安装SQLServer数据库是,如果设置不当就会出现一些中文乱码.主要原因是,很多人在使用默认安装系统时,一般不会考虑到默认排序的规则是拉丁文的排序规则,只是点击下一步,在 ...

  7. php utf-8读取,PHP读取文件,解决中文乱码UTF-8的方法分析

    PHP读取文件,解决中文乱码UTF-8的方法分析,方法,中文,操作技巧,文本,本文 PHP读取文件,解决中文乱码UTF-8的方法分析 易采站长站,站长之家为您整理了PHP读取文件,解决中文乱码UTF- ...

  8. java txt中文乱码,JAVA读取TXT文件 可解决中文乱码问题

    import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.I ...

  9. PHP生成PDF完美支持中文,解决TCPDF乱码

    PHP生成PDF完美支持中文,解决TCPDF乱码 2011-09-26 09:04 418人阅读 评论(0) 收藏 举报 phpfontsheaderttfxhtml文档 PHP生成PDF完美支持中文 ...

最新文章

  1. LiveVideoStackCon 2018日程(草稿)发布
  2. Android外设存储设备的访问及测试
  3. 诺顿360“偷偷”挖矿被怒喷,杀毒软件手伸向GPU,官方:都是为了用户好
  4. 红帽linux怎么更新源,redhat Linux配置yum更新源
  5. 搜索推荐炼丹笔记:评论是怎么影响推荐的?
  6. Visual Studio 技能GET
  7. Android Apk包的签名出库、自动编译与混淆
  8. 产品战略规划十步法ppt_从管理咨询角度谈如何系统地做产品战略规划?
  9. python最简单的图形编程_Python123
  10. Hibernate的批量处理-批量更新
  11. 【语音去噪】基于matlab GUI谱减法+维纳滤波语音去噪(带面板+信噪比)【含Matlab源码 1661期】
  12. 【数据分享】中国城市统计年鉴_2001-2021年
  13. 正则表达式同时匹配中英文及常用正则表达式
  14. 深度强化学习-策略梯度算法深入理解
  15. 云计算被指变相占土地 专家称去伪存真
  16. 那让人生生死死的「生态位」
  17. 蓝色——Love is Blue
  18. iOS - MVC框架
  19. 完全限定域名(fully qualified domain name,FQDN,笔记)
  20. 14.线程进阶操作(join,setDaemon)

热门文章

  1. (转)关于CNN中平移不变性的理解
  2. python接口自动化(二十六)--批量执行用例 discover(详解)
  3. 查看数值类型python_python里怎么查看数据类型
  4. python语言源程序文件类型_浅谈Python的文件类型
  5. android 火箭动画,利用动画模拟火箭发射场景
  6. MyBatis入门到精通——Mybatis入门篇
  7. 如何在Windows下安装zookeeper?
  8. 倾斜模型精细化处理_基于倾斜摄影和近景摄影技术的实景三维模型结合(CC与 DPModeler结合)...
  9. 第3章[3.6] 说透Ext JS的窗口及对话框用法
  10. oracle11g的用户名是什么,oracle11g默认用户名和密码