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教程 安装express及配置app.js文件的详细步骤
May 11 NodeJs
用nodejs写的一个简单项目打包工具
May 11 NodeJs
你一定会收藏的Nodejs代码片段
Feb 04 NodeJs
学习 NodeJS 第八天:Socket 通讯实例
Dec 21 NodeJs
Nodejs搭建wss服务器教程
May 24 NodeJs
NodeJS爬虫实例之糗事百科
Dec 14 NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 NodeJs
Nodejs Express 通过log4js写日志到Logstash(ELK)
Aug 30 NodeJs
nodejs搭建本地服务器并访问文件操作示例
May 11 NodeJs
Nodejs中使用puppeteer控制浏览器中视频播放功能
Aug 26 NodeJs
nodejs的安装使用与npm的介绍
Sep 11 NodeJs
在nodejs中创建child process的方法
Jan 26 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学习资料汇总与网址
2007/03/16 PHP
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
php与java通过socket通信的实现代码
2013/10/21 PHP
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
php编写简单的文章发布程序
2015/06/18 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
php使用event扩展的io复用测试的示例
2020/10/20 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
jquery 注意事项与常用语法小结
2010/06/07 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
JavaScript计时器示例分析
2015/02/05 Javascript
javascript实现日期按月份加减
2015/05/15 Javascript
Javascript刷新窗口方法小结
2015/10/21 Javascript
vue.js源代码core scedule.js学习笔记
2017/07/03 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
使用javaScript实现鼠标拖拽事件
2020/04/03 Javascript
javascript中的隐式调用
2018/02/10 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
2019/09/27 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
2019/11/06 Javascript
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
深入解析Python中的上下文管理器
2016/06/28 Python
Pytorch之finetune使用详解
2020/01/18 Python
python读取mysql数据绘制条形图
2020/03/25 Python
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
编辑个人求职信范文
2013/09/21 职场文书
《雨霖铃》听课反思
2014/02/13 职场文书
教师教学评估方案
2014/05/09 职场文书
珍惜时间演讲稿
2014/05/14 职场文书
领导干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
请病假条范文
2015/08/17 职场文书
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python