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 Post请求报socket hang up错误的解决办法
Sep 25 NodeJs
nodejs教程之异步I/O
Nov 21 NodeJs
Nodejs学习笔记之Stream模块
Jan 13 NodeJs
Nodejs学习笔记之测试驱动
Apr 16 NodeJs
Nodejs获取网络数据并生成Excel表格
Mar 31 NodeJs
NodeJS连接MongoDB数据库时报错的快速解决方法
May 13 NodeJs
Nodejs下用submit提交表单提示cannot post错误的解决方法
Nov 21 NodeJs
详解nodejs微信jssdk后端接口
May 25 NodeJs
Nodejs实现多房间简易聊天室功能
Jun 20 NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 NodeJs
nodejs用gulp管理前端文件方法
Jun 24 NodeJs
独立部署小程序基于nodejs的服务器过程详解
Jun 24 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 图片水印类代码
2012/08/27 PHP
php处理带有中文URL的方法
2016/07/11 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
PHP编程中的Session阻塞问题与解决方法分析
2017/08/07 PHP
jQuery Clone Bug解决代码
2010/12/22 Javascript
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
Javascript冒泡排序算法详解
2014/12/03 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
JavaScript中字符串的常用操作方法及特殊字符
2018/03/18 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
wxPython学习之主框架实例
2014/09/28 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
Python中Collections模块的Counter容器类使用教程
2016/05/31 Python
python生成二维码的实例详解
2017/10/29 Python
Python编写一个优美的下载器
2018/04/15 Python
PyCharm中代码字体大小调整方法
2019/07/29 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
python 多线程中join()的作用
2020/10/29 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
前台接待员岗位职责
2014/01/02 职场文书
电子商务自荐书范文
2014/01/04 职场文书
中学运动会广播稿
2014/01/19 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
艺术学院毕业生求职信
2014/07/09 职场文书
自我检讨报告
2015/01/28 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书