nodejs爬蟲抓取數(shù)據(jù)之編碼問題
cheerio DOM化并解析的時候
1.假如使用了 .text()方法,則一般不會有html實體編碼的問題出現(xiàn)
2.如果使用了 .html()方法,則很多情況下(多數(shù)是非英文的時候)都會出現(xiàn),這時,可能就需要轉(zhuǎn)義一番了
類似這些 因為需要作數(shù)據(jù)存儲,所有需要轉(zhuǎn)換
Халк крушит. Новый способ исполнен
大多數(shù)都是&#(x)?\w+的格式
所以就用正則轉(zhuǎn)換一番
var body = ....//這里就是請求后獲得的返回數(shù)據(jù),或者那些 .html()后獲取的 //一般可以先轉(zhuǎn)換為標(biāo)準(zhǔn)unicode格式(有需要就添加:當(dāng)返回的數(shù)據(jù)呈現(xiàn)太多\\\u 之類的時) body=unescape(body.replace(/\\u/g,"%u")); //再對實體符進(jìn)行轉(zhuǎn)義 //有x則表示是16進(jìn)制,$1就是匹配是否有x ,$2就是匹配出的第二個括號捕獲到的內(nèi)容,將$2以對應(yīng)進(jìn)制表示轉(zhuǎn)換 body = body.replace(/&#(x)?(\w+);/g,function($,$1,$2){ return String.fromCharCode(parseInt($2,$1?16:10)); });
ok ~
當(dāng)然了,網(wǎng)上也有很多個轉(zhuǎn)換的版本,適用的就行了
后記:
當(dāng)使用爬蟲抓取網(wǎng)頁數(shù)據(jù)時,cheerio模塊是經(jīng)常使用到底,它像jq那樣方便快捷
(但有些功能并未支持或者換了某種形式,比如 jq的 jQuery('.myClass').prop('outerHTML') ,cheerio則等價于 jQuery.html('.myClass')http://www.mgenware.com/blog/?p=2514)
- 手把手教你用Node.js爬蟲爬取網(wǎng)站數(shù)據(jù)的方法
- node.js讀取Excel數(shù)據(jù)(下載圖片)的方法示例
- 詳解使用Node.js 將txt文件轉(zhuǎn)為Excel文件
- Node.js利用js-xlsx處理Excel文件的方法詳解
- Node.js實現(xiàn)Excel轉(zhuǎn)JSON
- Nodejs實現(xiàn)爬蟲抓取數(shù)據(jù)實例解析
- nodeJs爬蟲獲取數(shù)據(jù)簡單實現(xiàn)代碼
- nodejs爬蟲抓取數(shù)據(jù)亂碼問題總結(jié)
- Nodejs技巧之Exceljs表格操作用法示例
- 使用ExcelJS快速處理Node.js爬蟲數(shù)據(jù)
相關(guān)文章
nodejs開發(fā)微信小程序?qū)崿F(xiàn)密碼加密
本文給大家分享的是在使用nodejs開發(fā)微信小程序的過程中,實現(xiàn)密碼加密的示例代碼,非常簡單,有需要的小伙伴可以參考下2017-07-07nodejs中express入門和基礎(chǔ)知識點學(xué)習(xí)
這篇文章給大家分享了關(guān)于學(xué)習(xí)nodejs中express入門和基礎(chǔ)知識點內(nèi)容,有興趣的朋友們參考下。2018-09-09詳解用Node.js實現(xiàn)Restful風(fēng)格webservice
本篇文章主要介紹了詳解用Node.js實現(xiàn)Restful風(fēng)格webservice,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09詳解如何使用Node.js編寫命令工具——以vue-cli為例
本篇文章主要介紹了如何使用Node.js編寫命令工具——以vue-cli為例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06Node.js環(huán)境下Koa2添加travis ci持續(xù)集成工具的方法
這篇文章主要給大家介紹了在Node.js環(huán)境下Koa2添加travis ci持續(xù)集成工具的方法,文中介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2017-06-06