js 爬虫抓取网页数据( 2015年07月03日09:48:26DOM化)
优采云 发布时间: 2021-12-06 07:17js 爬虫抓取网页数据(
2015年07月03日09:48:26DOM化)
nodejs爬虫爬取数据的编码问题
更新时间:2015-07-03 09:48:26 投稿:hebedich
本文文章主要介绍nodejs爬虫爬取数据编码问题的相关信息。有需要的朋友可以参考以下
当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));
});
好的~
当然网上也有很多转换的版本,申请就好
后记:
使用爬虫抓取网页数据时,经常用到cheerio模块到最后,和jq一样方便快捷
(但是有些功能不支持或者改成某种形式,比如jq的jQuery('.myClass').prop('outerHTML'),cheerio就相当于jQuery.html('.myClass'))