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写的一个简单项目打包工具
May 11 NodeJs
使用Nodejs开发微信公众号后台服务实例
Sep 03 NodeJs
轻松创建nodejs服务器(7):阻塞操作的实现
Dec 18 NodeJs
nodejs中实现阻塞实例
Mar 24 NodeJs
Nodejs抓取html页面内容(推荐)
Aug 11 NodeJs
Nodejs中使用phantom将html转为pdf或图片格式的方法
Sep 18 NodeJs
nodejs使用redis作为缓存介质实现的封装缓存类示例
Feb 07 NodeJs
nodejs爬虫初试superagent和cheerio
Mar 05 NodeJs
利用nodeJs anywhere搭建本地服务器环境的方法
May 12 NodeJs
详解Nodejs mongoose
Jun 10 NodeJs
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
Nov 01 NodeJs
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
Dec 06 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模板类代码
2008/09/07 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
2014/07/02 PHP
PHP中的switch语句的用法实例详解
2015/10/21 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
jquery的Theme和Theme Switcher使用小结
2010/09/08 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
2015/12/24 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
[04:17]DOTA2完美盛典,rOtk、BurNIng携手巴图演唱《倔强》
2017/11/28 DOTA
python实现巡检系统(solaris)示例
2014/04/02 Python
python获取文件版本信息、公司名和产品名的方法
2014/10/05 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
2017/12/14 Python
Selenium定位元素操作示例
2018/08/10 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
python生成九宫格图片
2018/11/19 Python
Python3.7 新特性之dataclass装饰器
2019/05/27 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
Python 获取项目根路径的代码
2019/09/27 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
2019/10/22 Python
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
天游软件面试
2013/11/23 面试题
干部下基层实施方案
2014/03/14 职场文书
党员干部一句话承诺
2014/05/30 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
同乡会致辞
2015/07/30 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android
python多线程方法详解
2022/01/18 Python
MySQL学习之基础命令实操总结
2022/03/19 MySQL