❶ Nodejs+Express开发web,为什么中文显示为乱码
npm install -g nodegrass //安装此模块使用 var gs = require('nodegrass'); gs.get('http://www.jd.com', function(data){ console.log(data);//将data输出即使中文 }, 'gbk').on('error',funtion(err){ console.log(err); }); 可以查查nodegr...
❷ nodejs运行会出现乱码,该怎么解决
nodejs乱码处理
1.处理回显乱码
res.write("<head><meta charset='utf-8'></head>");
2.处理传参乱码
querystring.escape(str)
escape可使传入的字符串进行编码
querystring.escape
querystring.escape("name=慕白");
/*
return:
'name%3D%E6%85%95%E7%99%BD'
*/
querystring.unescape(str)
unescape方法可将含有%的字符串进行解码
querystring.unescape
querystring.unescape('name%3D%E6%85%95%E7%99%BD');
/*
return:
'name=慕白'
*/
3.与编码相关的代码
var encoding = require('encoding');var iconv = require('iconv-lite');
console.log(encoding.convert("%E7%9A%84%E5%A3%AB%E9%80%9F%E9%80%92", "utf-8"));
console.log(iconv.decode('%E7%9A%84%E5%A3%AB%E9%80%9F%E9%80%92', 'utf-8'));
❸ Nodejs乱码怎么解决
Node.js 支持中文不太好(实际上是javascript支持),见《Node.js开发指南》。
要想Node.js正常显示中文,需要两点:
1、js文件保存为unicode格式。js文件是否为unicode格式,一个简单的方法是使用记事本来判断。使用记事本打开JS文件,点菜单另存为,看编码格式是否为"UTF-8"。若不是,可使用UltraEdit工具进行转换,使用记事本也可以转换。
2、在js文件中增加编码说明meta数据,让浏览器知道使用什么编码来解释网页。
两个条件缺一不可。
一个Node.js中使用中文的例子如下,该app.js需保存为utf-8格式,同时在文中增加meta编码数据说明:
[javascript]view plain
<metacharset="utf-8"/>
[javascript]view plain
//app.js
varhttp=require('http');
http.createServer(function(req,res){
res.writeHead(200,{'Content-Type':'text/html'});
res.write('<head><metacharset="utf-8"/></head>');
res.write('<h1>Node.js</h1>');
res.write('<b>亲爱的,你慢慢飞,小心前面带刺的玫瑰...</b>');
res.end('<p>HelloWorld</p>');
}).listen(3000);
console.log(".");
❹ 如何使用nodejs做爬虫程序
解压到一个目录,在cmd命令控制台进入该目录,运行npm install安装依赖包。之后运行node 爬虫主程序.js。
❺ nodejs中使用$.get 获取html出现中文乱码
你好!
var
iconv
=
require('iconv-lite');
html=
iconv.decode(html,
'utf8')
试试这样行不行,我没测试
其实换这个试试
var
http=
require('http')
http.get(url,function(){})
也可以
仅代表个人观点,不喜勿喷,谢谢。
❻ nodejs怎么才能用爬虫爬取https网页
爬虫爬https站点抄处理,方法步骤如下:
1、百袭度蜘蛛爬虫Spider爬取HTTPS网站
1)、根据网页中的超链接是否是HTTPS,网络中会有一些超链,如果是HTTPS会认为是HTTPS站点。
2)、根据站长平台提交入口的提交方式,例如主动提交,如果在文件当中提交的是HTTPS链接会以HTTPS的形式来发现。
3)、参考前链的抓取相对路径,第一个网页是HTTPS的,网站内容里面的路径提供的是相对路径,会认为这种链接是HTTPS。
4)、参考链接的历史状况,使用这种方式的原因主要是为了纠错,如果错误提取HTTPS会遇到两种情况,一种因为HTTPS不可访问会抓取失败,第二即使能抓成功可能展现出来的可能不是站长希望的,所以会有一定的纠错。
2、HTTPS链接的抓取
现在比较常见的两种,第一种是纯HTTPS抓取,就是它没有HTTP的版本,第二个是通过HTTP重定向到HTTPS,这两种都能正常的进行抓取跟HTTP抓取的效果是一样的。
3、HTTPS的展现
对于HTTPS数据,展现端会有明显的提示
❼ 如何通过nodeJs爬虫获取数据简单实现代码
var http=require('http');
var cheerio=require('cheerio');//页面获取到的数据模块
var url='http://www.jcpeixun.com/lesson/1512/';
function filterData(html){
/*所要获取到的目标数组
var courseData=[{
chapterTitle:"",
videosData:{
videoTitle:title,
videoId:id,
videoPrice:price
}
}] */
var $=cheerio.load(html);
var courseData=[];
var chapters=$(".list-collapse");
chapters.each(function(item){
var chapterTitle=$(this).find(".collapse-head").find("label").text();
var videos=$(this).find(".listview5").children("li");
var chaptersData={
chaptersTitle:chapterTitle,
videosData:[]
}
videos.each(function(item){
var videoTitle=$(this).find(".ml10").attr('data-lesson-name');
var videoId=$(this).find(".ml10").attr('data-lesson-id');
var vadeoPrice=$(this).find(".colblue").text();
chaptersData.videosData.push({
title:videoTitle,
id:videoId,
price:vadeoPrice
})
})
courseData.push(chaptersData)
})
return courseData
}
function printCourseInfo(courseData){
courseData.forEach(function(item){
console.log(item.chaptersTitle+'\n');
item.videosData.forEach(function(item){
console.log(item.title+'【'+item.id+'】'+item.price+'\n')
})
})
}
http.get(url,function(res){
html="";
res.on("data",function(data){
html+=data
})
res.on('end',function(){
var courseData=filterData(html);
printCourseInfo(courseData)
})
})
❽ nodejs上传文件,文件内容中文乱码
前端上传的是复gbk, 你后端当成utf8, 当然制这样了.
一种是你前端规定只能上传utf8文本文件;
还有一种你知道前端大部分都是gbk, 后端做gbk到utf8的转化. (我那个时候nodejs似乎还没内置gbk解码器, 现在不知道了)
❾ nodejs中使用$.get 获取html出现中文乱码
npm install -g nodegrass //安装此模块使用
var gs = require('nodegrass');
gs.get('http://www.jd.com', function(data){
console.log(data);//将data输出即使中文
}, 'gbk').on('error',funtion(err){
console.log(err);
});
可以查查nodegrass的说明 https://github.com/scottkiss/nodegrass