html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

nodejs爬虫抓取数据之编码问题_node.js_

[ ] 已经帮助:人解决问题

cheerio DOM化并解析的时候ZFFHTML5中文学习网 - HTML5先行者学习网

1.假如使用了 .text()方法,则一般不会有html实体编码的问题出现ZFFHTML5中文学习网 - HTML5先行者学习网

2.如果使用了 .html()方法,则很多情况下(多数是非英文的时候)都会出现,这时,可能就需要转义一番了ZFFHTML5中文学习网 - HTML5先行者学习网

类似这些 因为需要作数据存储,所有需要转换ZFFHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
ZFFHTML5中文学习网 - HTML5先行者学习网
Халк крушит. Новый способ исполненZFFHTML5中文学习网 - HTML5先行者学习网
ZFFHTML5中文学习网 - HTML5先行者学习网

ZFFHTML5中文学习网 - HTML5先行者学习网

大多数都是&#(x)?/w+的格式ZFFHTML5中文学习网 - HTML5先行者学习网

所以就用正则转换一番ZFFHTML5中文学习网 - HTML5先行者学习网

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 ~ZFFHTML5中文学习网 - HTML5先行者学习网

当然了,网上也有很多个转换的版本,适用的就行了ZFFHTML5中文学习网 - HTML5先行者学习网

后记:ZFFHTML5中文学习网 - HTML5先行者学习网

当使用爬虫抓取网页数据时,cheerio模块是经常使用到底,它像jq那样方便快捷ZFFHTML5中文学习网 - HTML5先行者学习网

(但有些功能并未支持或者换了某种形式,比如 jq的 jQuery('.myClass').prop('outerHTML') ,cheerio则等价于 jQuery.html('.myClass')http://www.mgenware.com/blog/?p=2514ZFFHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助