Node做网页爬虫时遇到的Htmlentites对象造成乱码_html/css_WEB-ITnose
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Node做网页爬虫时遇到的Htmlentites对象造成乱码_html/css_WEB-ITnose,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1248字,纯文字阅读大概需要2分钟。
内容图文
![Node做网页爬虫时遇到的Htmlentites对象造成乱码_html/css_WEB-ITnose](/upload/InfoBanner/zyjiaocheng/404/27f1333049774eb39e30c1c01d7625f7.jpg)
就是文字内容是这种货:
????
尝试用iconv-lite模块的decode去转码,但是失败了。
这种叫HTML Entities,可以借助一些模块来转换,比如,html-entities Github。
HTML Entities是什么请参照如下网址:
http://www.w3school.com.cn/html/html_entities.asp
html-entities的使用方法如下
var Entities = require('html-entities').XmlEntities;entities = new Entities();var str = '????';console.log(entities.decode(str));
在爬虫的请求上也要调整:
1 var headers = { 2 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36'3 }
加上简单的伪装
使用Node爬的话,应该会用cheerio,在接受request返回的网页内容时,还是经过iconv的转换,再用cheerio
1 var html = iconv.decode(body, 'gbk')2 var $ = cheerio.load(html, {decodeEntities: false})
如果你不知道抓取的网页的编码的话,请使用:
res.headers['content-type']
根据返回的编码格式进行处理即可
关于网页内容转码和乱码的深层分析可以阅读如下博文:
http://www.dewen.io/q/13755
http://www.99css.com/nodejs-request-chinese-encoding/
这个帅哥的分析也很有趣
http://blog.vichamp.com/program/2015/07/04/Common-Messy-Code/
内容总结
以上是互联网集市为您收集整理的Node做网页爬虫时遇到的Htmlentites对象造成乱码_html/css_WEB-ITnose全部内容,希望文章能够帮你解决Node做网页爬虫时遇到的Htmlentites对象造成乱码_html/css_WEB-ITnose所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。