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 npm包管理的配置方法及常用命令介绍
Jun 05 NodeJs
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
Jan 01 NodeJs
Nodejs实现批量下载妹纸图
May 28 NodeJs
nodeJs爬虫获取数据简单实现代码
Mar 29 NodeJs
Jquery通过ajax请求NodeJS返回json数据实例
Nov 08 NodeJs
简单好用的nodejs 爬虫框架分享
Mar 26 NodeJs
NodeJS基础API搭建服务器详细过程记录
Apr 01 NodeJs
nodejs个人博客开发第二步 入口文件
Apr 12 NodeJs
配置nodejs环境的方法
May 13 NodeJs
nodeJS微信分享
Dec 20 NodeJs
nodejs操作mongodb的填删改查模块的制作及引入实例
Jan 02 NodeJs
修改Nodejs内置的npm默认配置路径方法
May 13 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
zf框架的校验器InArray使用示例
2014/03/13 PHP
Laravel第三方包报class not found的解决方法
2019/10/13 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
js计算页面刷新的次数
2009/07/20 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
2015/04/22 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
2017/10/21 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
vue 解决mintui弹窗弹起来,底部页面滚动bug问题
2020/11/12 Javascript
python实现代码行数统计示例分享
2014/02/10 Python
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
Python实现在某个数组中查找一个值的算法示例
2018/06/27 Python
Python面向对象程序设计示例小结
2019/01/30 Python
Pandas之排序函数sort_values()的实现
2019/07/09 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
软件配置管理有什么好处
2015/04/15 面试题
摄影专业毕业生求职信
2014/03/13 职场文书
个人查摆剖析材料
2014/10/04 职场文书
离婚协议书怎么写
2015/01/26 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书
MySQL sql模式设置引起的问题
2022/05/15 MySQL