nodejs之http.request 网页抓取数据
2018-01-17 22:52
806 查看
var fs=require('fs');
var http=require('http');
var url=require('url');
var gbk=require('gbk');//转换字符编码
var jsdom=require('jsdom');//操作jsdocument
var JSDOM=jsdom.JSDOM;
//调用
getUrl('',(data,str)=>{//这里的data是参数,es6的函数新写法
// fs.writeFile('one.jpg',data,()=>{//data是数组,one.jpg是图片名称或文件名称
// console.log('抓取图片成功');
// });
var htlm=gbk.toString('utf-8',str);//吧gbk的字符串数据转成utf8的字符串
let dom=new JSDOM(html);//吧html字符串加载到doom中去
let document=dom.window.document;
console.log(document.querySelect(':f').innerHTML);//:f是选择器
});
//写一个函数解析url
function getUrl(sUrl,success){
var urlObject=url.parse(sUrl);//解析成url对象
var http='';
if(urlObject.protocol=='http:'){
http=require('http');
}else{
http=require('https');
}
let req=http.request({
'hostname':urlObject.hostname,//主机或域名baidu.com
'path':urlObject.pathname//路径/baidupan
},res=>{//这里的res是回调函数参数
if(res.statueCode==200){
var arr=[];
var str='';
res.on('data',buffer=>{
arr.push(buffer);//用数组添加
str+=buffer;//用字符串拼接
});
res.on('end',()=>{
let b=Buffer.contact(arr);
success&& success(b,str);
});
}else if(res.statueCode==302 ||res.statueCode==301){
getUrl(res.headers.location,success);
}
});
req.end();//结束请求
req.on('error',()=>{
console.log('404');
});
}
******************************************************
//方法2
let req=http.request({
'hostname':'',//主机或域名baidu.com
'path':''//路径/baidupan
},res=>{
var arr=[];
var str='';
res.on('data',buffer=>{
arr.push(buffer);//用数组添加
str+=buffer;//用字符串拼接
});
res.on('end',()=>{
let b=Buffer.contact(arr);
fs.writeFile('one.jpg',b,()=>{
console.log('抓取图片成功');
});
});
});
**************************************
echarts.js比例图显示插件:如饼状,柱状图
//segment中文分词
let seg=new segment();
seg.userDefault();
var str="今天是星期天,有加班";
var arr=seg.doSegment(str);
var ar=[];
arr.forEach(data=>{
if(data.p!=20){
ar.push(data.w);
}
});
var http=require('http');
var url=require('url');
var gbk=require('gbk');//转换字符编码
var jsdom=require('jsdom');//操作jsdocument
var JSDOM=jsdom.JSDOM;
//调用
getUrl('',(data,str)=>{//这里的data是参数,es6的函数新写法
// fs.writeFile('one.jpg',data,()=>{//data是数组,one.jpg是图片名称或文件名称
// console.log('抓取图片成功');
// });
var htlm=gbk.toString('utf-8',str);//吧gbk的字符串数据转成utf8的字符串
let dom=new JSDOM(html);//吧html字符串加载到doom中去
let document=dom.window.document;
console.log(document.querySelect(':f').innerHTML);//:f是选择器
});
//写一个函数解析url
function getUrl(sUrl,success){
var urlObject=url.parse(sUrl);//解析成url对象
var http='';
if(urlObject.protocol=='http:'){
http=require('http');
}else{
http=require('https');
}
let req=http.request({
'hostname':urlObject.hostname,//主机或域名baidu.com
'path':urlObject.pathname//路径/baidupan
},res=>{//这里的res是回调函数参数
if(res.statueCode==200){
var arr=[];
var str='';
res.on('data',buffer=>{
arr.push(buffer);//用数组添加
str+=buffer;//用字符串拼接
});
res.on('end',()=>{
let b=Buffer.contact(arr);
success&& success(b,str);
});
}else if(res.statueCode==302 ||res.statueCode==301){
getUrl(res.headers.location,success);
}
});
req.end();//结束请求
req.on('error',()=>{
console.log('404');
});
}
******************************************************
//方法2
let req=http.request({
'hostname':'',//主机或域名baidu.com
'path':''//路径/baidupan
},res=>{
var arr=[];
var str='';
res.on('data',buffer=>{
arr.push(buffer);//用数组添加
str+=buffer;//用字符串拼接
});
res.on('end',()=>{
let b=Buffer.contact(arr);
fs.writeFile('one.jpg',b,()=>{
console.log('抓取图片成功');
});
});
});
**************************************
echarts.js比例图显示插件:如饼状,柱状图
//segment中文分词
let seg=new segment();
seg.userDefault();
var str="今天是星期天,有加班";
var arr=seg.doSegment(str);
var ar=[];
arr.forEach(data=>{
if(data.p!=20){
ar.push(data.w);
}
});
相关文章推荐
- 利用HttpWebRequest抓取网页数据
- HttpWebRequest抓取网页数据返回异常:远程服务器返回错误: (503) 服务器不可用
- 《程序员的第一年》---------- 【抓取网页数据】定时查寻淘宝搜索结果并用excel记录下来(HttpWebRequest与正则等的使用)
- 使用HttpWebRequest与HttpWebResponse抓取网页数据
- HttpWebRequest抓取网页数据返回异常:远程服务器返回错误: (503) 服务器不可用
- C#网页采集数据的几种方式(WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)
- request+goquery+mahonia实现自动抓取网页数据
- C#用HttpWebRequest通过代理服务器验证后抓取网页内容
- 使用HttpWebRequest抓取网页
- C#网页抓取 HttpWebRequest
- C#用HttpWebRequest通过代理服务器验证后抓取网页内容
- WebClient HttpWebRequest从网页中获取请求数据
- 【转载】C# HttpHelper,Httprequest,请求时无视编码,无视证书,无视Cookie,网页抓取
- C#如何使用HttpWebRequest、HttpWebResponse模拟浏览器抓取网页内容
- Python 多线程抓取网页 牛人 use raw socket implement http request great
- HttpWebRequest抓取网页内容与直接输入URL得到的内容不一致!球大神帮忙!!
- Java HttpURLConnection 抓取网页内容 解析gzip格式输入流数据并转换为String格式字符串
- apache HttpClient 4.3.4自动登录并抓取中国联通网页用户基本信息和账单数据
- c# WebBrower 与 HttpRequest配合 抓取数据
- ASIHTTPRequest请求网页数据