nodejs爬蟲抓取數(shù)據(jù)之編碼問(wèn)題
cheerio DOM化并解析的時(shí)候
1.假如使用了 .text()方法,則一般不會(huì)有html實(shí)體編碼的問(wèn)題出現(xiàn)
2.如果使用了 .html()方法,則很多情況下(多數(shù)是非英文的時(shí)候)都會(huì)出現(xiàn),這時(shí),可能就需要轉(zhuǎn)義一番了
類似這些 因?yàn)樾枰鲾?shù)據(jù)存儲(chǔ),所有需要轉(zhuǎn)換
Халк крушит. Новый способ исполнен

大多數(shù)都是&#(x)?\w+的格式
所以就用正則轉(zhuǎn)換一番
var body = ....//這里就是請(qǐng)求后獲得的返回?cái)?shù)據(jù),或者那些 .html()后獲取的
//一般可以先轉(zhuǎn)換為標(biāo)準(zhǔn)unicode格式(有需要就添加:當(dāng)返回的數(shù)據(jù)呈現(xiàn)太多\\\u 之類的時(shí))
body=unescape(body.replace(/\\u/g,"%u"));
//再對(duì)實(shí)體符進(jìn)行轉(zhuǎn)義
//有x則表示是16進(jìn)制,$1就是匹配是否有x ,$2就是匹配出的第二個(gè)括號(hào)捕獲到的內(nèi)容,將$2以對(duì)應(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)上也有很多個(gè)轉(zhuǎn)換的版本,適用的就行了
后記:
當(dāng)使用爬蟲抓取網(wǎng)頁(yè)數(shù)據(jù)時(shí),cheerio模塊是經(jīng)常使用到底,它像jq那樣方便快捷
(但有些功能并未支持或者換了某種形式,比如 jq的 jQuery('.myClass').prop('outerHTML') ,cheerio則等價(jià)于 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實(shí)現(xiàn)Excel轉(zhuǎn)JSON
- Nodejs實(shí)現(xiàn)爬蟲抓取數(shù)據(jù)實(shí)例解析
- nodeJs爬蟲獲取數(shù)據(jù)簡(jiǎn)單實(shí)現(xiàn)代碼
- nodejs爬蟲抓取數(shù)據(jù)亂碼問(wèn)題總結(jié)
- Nodejs技巧之Exceljs表格操作用法示例
- 使用ExcelJS快速處理Node.js爬蟲數(shù)據(jù)
相關(guān)文章
Node.js開(kāi)發(fā)靜態(tài)資源服務(wù)器
這篇文章主要為大家介紹了Node.js開(kāi)發(fā)靜態(tài)資源服務(wù)器示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
詳解nodejs中express搭建權(quán)限管理系統(tǒng)
本篇文章主要介紹了詳解express搭建權(quán)限管理系統(tǒng),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
NodeJS學(xué)習(xí)筆記之Connect中間件應(yīng)用實(shí)例
前面我們介紹了幾篇內(nèi)容的connect中間件的基礎(chǔ)知識(shí),今天我們來(lái)實(shí)例應(yīng)用一下,做個(gè)記事本的小應(yīng)用,希望大家能夠喜歡。2015-01-01
node.js調(diào)用C++開(kāi)發(fā)的模塊實(shí)例
這篇文章主要介紹了node.js調(diào)用C++開(kāi)發(fā)的模塊實(shí)例,在node的程序中,如果有大數(shù)據(jù)量的計(jì)算,處理起來(lái)比較慢,可以用C++來(lái)處理,然后通過(guò)回調(diào)(callback的形式),返回給node,需要的朋友可以參考下2015-07-07
WebSocket實(shí)現(xiàn)簡(jiǎn)單客服聊天系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了WebSocket實(shí)現(xiàn)簡(jiǎn)單客服聊天系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
Windows系統(tǒng)下安裝Node.js的步驟圖文詳解
這篇文章主要給大家介紹了Windows系統(tǒng)下Node.js的安裝教程,Node.js是用于后端編程的JavaScript框架,文中給出了詳細(xì)圖文介紹,有需要的朋友可以參考下,下面來(lái)一起看看吧。2016-11-11
node.js中的favicon.ico請(qǐng)求問(wèn)題處理
本文記錄了在項(xiàng)目中使用node.js請(qǐng)求favican.ico的時(shí)候會(huì)出現(xiàn)2條請(qǐng)求,浪費(fèi)資源,經(jīng)過(guò)一番改進(jìn),記錄下來(lái)過(guò)程,以后注意。2014-12-12

