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


Posted in NodeJs onJuly 03, 2015

cheerio DOM化并解析的时候

1.假如使用了 .text()方法,则一般不会有html实体编码的问题出现

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

类似这些 因为需要作数据存储,所有需要转换

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

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

大多数都是&#(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)

NodeJs 相关文章推荐
Nodejs实现多人同时在线移动鼠标的小游戏分享
Dec 06 NodeJs
NodeJS学习笔记之Connect中间件应用实例
Jan 27 NodeJs
iPhone手机上搭建nodejs服务器步骤方法
Jul 06 NodeJs
nodeJs内存泄漏问题详解
Sep 05 NodeJs
NodeJS中的MongoDB快速入门详细教程
Nov 11 NodeJs
解决nodejs中使用http请求返回值为html时乱码的问题
Feb 18 NodeJs
NodeJS处理Express中异步错误
Mar 26 NodeJs
nodejs实现邮件发送服务实例分享
Mar 29 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
深入学习nodejs中的async模块的使用方法
Jul 12 NodeJs
NVM安装nodejs的方法实用步骤
Jan 16 NodeJs
图解NodeJS实现登录注册功能
Sep 16 NodeJs
nodejs爬虫抓取数据乱码问题总结
Jul 03 #NodeJs
nodejs导出excel的方法
Jun 30 #NodeJs
nodejs实现获取当前url地址及url各种参数值
Jun 25 #NodeJs
使用nodejs开发cli项目实例
Jun 03 #NodeJs
nodejs实现遍历文件夹并统计文件大小
May 28 #NodeJs
nodejs实现获取某宝商品分类
May 28 #NodeJs
Nodejs实现批量下载妹纸图
May 28 #NodeJs
You might like
php empty函数判断mysql表单是否为空
2010/04/12 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
php 参数过滤、数据过滤详解
2015/10/26 PHP
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
2011/04/27 Javascript
解析JavaScript中的标签语句
2013/06/19 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
vue + socket.io实现一个简易聊天室示例代码
2017/03/06 Javascript
详解Node.js实现301、302重定向服务
2017/04/07 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
Element Steps步骤条的使用方法
2020/07/26 Javascript
[01:32:10]NAVI vs VG Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
python 简易计算器程序,代码就几行
2009/08/29 Python
python有证书的加密解密实现方法
2014/11/19 Python
python对json的相关操作实例详解
2017/01/04 Python
使用Python检测文章抄袭及去重算法原理解析
2019/06/14 Python
python 使用plt画图,去除图片四周的白边方法
2019/07/09 Python
Python拆分大型CSV文件代码实例
2019/10/07 Python
tensorflow使用range_input_producer多线程读取数据实例
2020/01/20 Python
在spyder IPython console中,运行代码加入参数的实例
2020/04/20 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
2020/11/22 Python
简历自我评价怎么写好呢?
2014/01/04 职场文书
岗位职责风险防控
2014/02/18 职场文书
农村婚礼主持词
2014/03/13 职场文书
禁毒宣传工作方案
2014/05/23 职场文书
运动会入场口号
2014/06/07 职场文书
个人整改方案范文
2014/10/25 职场文书
万能检讨书开头与结尾怎么写
2015/02/17 职场文书
赢在中国观后感
2015/06/02 职场文书
学生会部长竞选稿
2015/11/19 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers