欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nodejs爬蟲抓取數(shù)據(jù)之編碼問題

 更新時間:2015年07月03日 09:48:26   投稿:hebedich  
這篇文章主要介紹了nodejs爬蟲抓取數(shù)據(jù)之編碼問題的相關(guān)資料,需要的朋友可以參考下

cheerio DOM化并解析的時候

1.假如使用了 .text()方法,則一般不會有html實體編碼的問題出現(xiàn)

2.如果使用了 .html()方法,則很多情況下(多數(shù)是非英文的時候)都會出現(xiàn),這時,可能就需要轉(zhuǎn)義一番了

類似這些 因為需要作數(shù)據(jù)存儲,所有需要轉(zhuǎn)換

復(fù)制代碼 代碼如下:

Халк крушит. Новый способ исполнен

大多數(shù)都是&#(x)?\w+的格式

所以就用正則轉(zhuǎn)換一番

var body = ....//這里就是請求后獲得的返回數(shù)據(jù),或者那些 .html()后獲取的

//一般可以先轉(zhuǎn)換為標準unicode格式(有需要就添加:當返回的數(shù)據(jù)呈現(xiàn)太多\\\u 之類的時)
body=unescape(body.replace(/\\u/g,"%u"));
//再對實體符進行轉(zhuǎn)義
//有x則表示是16進制,$1就是匹配是否有x ,$2就是匹配出的第二個括號捕獲到的內(nèi)容,將$2以對應(yīng)進制表示轉(zhuǎn)換
body = body.replace(/&#(x)?(\w+);/g,function($,$1,$2){
        return String.fromCharCode(parseInt($2,$1?16:10));
       });

ok ~

當然了,網(wǎng)上也有很多個轉(zhuǎn)換的版本,適用的就行了

后記:

當使用爬蟲抓取網(wǎng)頁數(shù)據(jù)時,cheerio模塊是經(jīng)常使用到底,它像jq那樣方便快捷

(但有些功能并未支持或者換了某種形式,比如 jq的 jQuery('.myClass').prop('outerHTML') ,cheerio則等價于 jQuery.html('.myClass')http://www.mgenware.com/blog/?p=2514

相關(guān)文章

最新評論