位置: 编程技术 - 正文
推荐整理分享nodejs爬虫抓取数据乱码问题总结(nodejs 爬虫),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:node网络爬虫,node爬取数据,node python 爬虫,nodejs爬取数据,node python 爬虫,node爬取数据,nodejs爬取数据,nodejs 爬虫,内容如对您有帮助,希望把文章链接给更多的朋友!
一、非UTF-8页面处理.
1.背景
windows-编码
比如俄语网站: Windows-(cp)编码与utf-8编码的问题,其他的如 gbk就先不考虑在内了~
2.解决方案
1.
使用js原生编码转换
但是我现在还没找到办法哈..
如果是utf-8转window-还可以 charCodeAt 方法只对 unicode有效,其他编码是如何挖掘出其码段? 因为用的是nodejs 所以考虑使用相应模块
2.
安装使用nodejs模块iconv-lite 使用说明见 使用说明见 之前没仔细看官方说明)
一般简单使用后,还是乱码 形如:ппппп пппппп пппппппп
encoding:binary (默认的encoding是utf-8)
-->另外要说的是,iconv的使用时需要一些环境依赖的,见官方说明: ;
第二需要编译工具的支持(windows下出错最多)
出错类似这种
node,如无特定版本或更高版本,默认使用vs编译工具(所以出错提示的解决办法一般为按照vs和framwork sdk2.0)
问题解决方案:
1.安装visual stutio
2.指定vs编译工具版本(如果是vs就是)
(有些时候会自动指定,所有也不一定需要这个命令 npm config set msvs_version --global)
3.如若还是提示找不到 framwork sdk,可将其安装路径添加到系统环境变量path中
(对应sdk4.0版本,类似的 sdj3.5 sdk4.5)
另外要记得的是,环境变量只会读取第一个!
比如你之前已经有了 SDK2.0的路径设到了系统环境变量中,那么你现在再增加设置一个SDK4.0的路径的时候,起作用的只有第一个
所以:
要么把之前那个删了
要么把想添加的路径放到那个前面
二、gzip页面处理
有时候我们发现浏览器访问页面是正常的,但是模拟请求回来就乱码了,可以查看一下浏览器请求的Response信息,如果有Content-Encoding:gzip,极有可能是因为页面被gzip压缩了,这时请求时需要添加如下参数
gzip:true
以上所述就是本文的全部内容了,希望大家能够喜欢。
nodejs爬虫抓取数据之编码问题 cheerioDOM化并解析的时候1.假如使用了.text()方法,则一般不会有html实体编码的问题出现2.如果使用了.html()方法,则很多情况下(多数是非英文的时候)都
node.js调用C++开发的模块实例 如何用C++和node交互,在node的程序中,如果有大数据量的计算,处理起来比较慢,可以用C++来处理,然后通过回调(callback的形式),返回给node。先回顾
node.js中格式化数字增加千位符的几种方法 每三位以逗号分隔的处理方式正则方式:"".split("").reverse().join("").replace(/(d{3})/g,"$1,").split("").reverse().join("");"".split("").reverse().join("").replace(/(
标签: nodejs 爬虫
本文链接地址:https://www.jiuchutong.com/biancheng/377966.html 转载请保留说明!友情链接: 武汉网站建设