DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> nodejs爬蟲抓取數據之編碼問題
nodejs爬蟲抓取數據之編碼問題
編輯:關於JavaScript     

cheerio DOM化並解析的時候

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

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

類似這些 因為需要作數據存儲,所有需要轉換

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

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

所以就用正則轉換一番

var body = ....//這裡就是請求後獲得的返回數據,或者那些 .html()後獲取的

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

ok ~

當然了,網上也有很多個轉換的版本,適用的就行了

後記:

當使用爬蟲抓取網頁數據時,cheerio模塊是經常使用到底,它像jq那樣方便快捷

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

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved