首頁 > web前端 > html教學 > Node做网页爬虫时遇到的Html entites对象造成乱码_html/css_WEB-ITnose

Node做网页爬虫时遇到的Html entites对象造成乱码_html/css_WEB-ITnose

WBOY
發布: 2016-06-24 11:28:22
原創
1578 人瀏覽過

Node做网页爬虫时遇到的Html entites对象造成乱码

就是文字内容是这种货:

 ��һҳ 

尝试用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/

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板