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 后缀名判断限制代码
Mar 31 NodeJs
nodejs中exports与module.exports的区别详细介绍
Jan 14 NodeJs
轻松创建nodejs服务器(10):处理上传图片
Dec 18 NodeJs
NodeJS使用formidable实现文件上传
Oct 27 NodeJs
nodejs和C语言插入mysql数据库乱码问题的解决方法
Apr 14 NodeJs
Nodejs进阶:express+session实现简易登录身份认证
Apr 24 NodeJs
nodejs使用redis作为缓存介质实现的封装缓存类示例
Feb 07 NodeJs
通过nodejs 服务器读取HTML文件渲染到页面的方法
May 17 NodeJs
Nodejs对postgresql基本操作的封装方法
Feb 20 NodeJs
nodejs搭建本地服务器并访问文件操作示例
May 11 NodeJs
Nodejs 数组的队列以及forEach的应用详解
Feb 25 NodeJs
NodeJs使用webpack打包项目的方法详解
Feb 28 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
自制汽车收音机天线:收听广播的技巧和方法
2021/03/02 无线电
一个改进的UBB类
2006/10/09 PHP
php实现无限级分类
2014/12/24 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
2018/03/15 PHP
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
2011/11/18 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
jQuery实现可拖拽的许愿墙效果【附demo源码下载】
2016/09/14 Javascript
详解Webpack DLL用法以及功能
2017/07/11 Javascript
vue中element组件样式修改无效的解决方法
2018/02/03 Javascript
新手简单了解vue
2019/05/29 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
2020/09/09 Javascript
Python中强大的命令行库click入门教程
2016/12/26 Python
Python实现多线程HTTP下载器示例
2017/02/11 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
Python读取YAML文件过程详解
2019/12/30 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
Python中用pyinstaller打包时的图标问题及解决方法
2020/02/17 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
2020/04/08 Python
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
Chi Chi London官网:购买连衣裙和礼服
2020/10/25 全球购物
自荐信的禁忌和要点
2013/10/15 职场文书
食堂员工工作职责
2013/12/18 职场文书
作弊检讨书1000字
2014/02/01 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
格林童话读书笔记
2015/06/30 职场文书
婚礼家长致辞
2015/07/27 职场文书
实操Python爬取觅知网素材图片示例
2021/11/27 Python
Redis基本数据类型List常用操作命令
2022/06/01 Redis