nodejs入门教程之http的get和request简介及应用
前言
上一篇文章,我介绍了nodejs的几个常用的模块及简单的案例,今天我们再来重点看一下nodejs的http模块,关于http模块,我们可以看下nodejs官方文档。关于http模块,有兴趣的可以研究一下node的源码。http模块功能是很强大的,今天主要介绍他的get和request方法! GET简介
我们首先来运行一下下面的代码 const http = require("http")
http.get('http://www.baidu.com', (res) => {
console.log(`Got response: ${res.statusCode}`);
// consume response body
res.resume();
}).on('error', (e) => {
console.log(`Got error: ${e.message}`);
});
会返回一个200的状态码! 将上面代码稍微改进一下。 const http = require("http")
const url = "http://www.haorooms.com/post/nodejs_rmyyong"
http.get(url,(res)=>{
var html = ""
res.on("data",(data)=>{
html+=data
}) res.on("end",()=>{
console.log(html)
})
}).on("error",(e)=>{
console.log(`获取数据失败: ${e.message}`)
})
运行一下这段代码,会怎么样?会把我这个页面大源码给爬下来了! 也就是说,我们可以利用http的get方法,写一个爬虫,来爬取网页数据!(很多网页爬虫都是用python写的)我们前端也可以用node写网页爬虫,来爬取数据!当然,我们来要对爬来的数据进行筛选和整合,筛选出我们想要的数据!我们可以引用cheerio,进行数据的筛选。爬取网页数据呢,可以配合nodejs的Promise对象,Promise对象是ES6的一个新的对象,最早是社区里面先提出来的,后来,jquery deferred等都引入关于jquery的deferred,我之前也写过一篇文章http://www.haorooms.com/post/jquery_deferred_img 有兴趣的可以看一下! 写爬虫代码,我在这里就不展开了,感兴趣的可以关注我的github,我会写一个简单的放上去,大家可以参考(ps暂时还没有写哦)。 request简介
http的request也很厉害!官方这么描述“This function allows one to transparently issue requests.”他的官方案例如下: var postData = querystring.stringify({
'msg' : 'Hello World!'
});
var options = {
hostname: 'www.google.com',
port: ,
path: '/upload',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': postData.length
}
}; var req = http.request(options, (res) => {
console.log(`STATUS: ${res.statusCode}`);
console.log(`HEADERS: ${JSON.stringify(res.headers)}`);
res.setEncoding('utf8');
res.on('data', (chunk) => {
console.log(`BODY: ${chunk}`);
});
res.on('end', () => {
console.log('No more data in response.')
})
}); req.on('error', (e) => {
console.log(`problem with request: ${e.message}`);
}); // write data to request body
req.write(postData);
req.end();
我们可以利用这个http的request来提交一下评论,我们可以获取网站的一些评论接口,通过上面options,我们可以配置请求的headers信息,进行网站的灌水评论! 通过这个方法,我们可以写一些网站灌水插件,自动发布网站评论等等!【ps,现在网站大多都有防止灌水的机制!所以大家建议大家不要干坏事哦!!!!】

nodejs入门教程之http的get和request简介及应用

2016年4月23日 14523次浏览

前言

上一篇文章,我介绍了nodejs的几个常用的模块及简单的案例,今天我们再来重点看一下nodejs的http模块,关于http模块,我们可以看下nodejs官方文档。关于http模块,有兴趣的可以研究一下node的源码。http模块功能是很强大的,今天主要介绍他的get和request方法!

GET简介

我们首先来运行一下下面的代码

const http =require("http")
http.get('http://www.baidu.com',(res)=>{
console.log(`Got response: ${res.statusCode}`);// consume response body
res.resume();}).on('error',(e)=>{
console.log(`Got error: ${e.message}`);});

会返回一个200的状态码!

将上面代码稍微改进一下。

const http =require("http")const url ="http://www.haorooms.com/post/nodejs_rmyyong"
http.get(url,(res)=>{var html =""
res.on("data",(data)=>{
html+=data
}) res.on("end",()=>{
console.log(html)})}).on("error",(e)=>{
console.log(`获取数据失败: ${e.message}`)})

运行一下这段代码,会怎么样?会把我这个页面大源码给爬下来了!

也就是说,我们可以利用http的get方法,写一个爬虫,来爬取网页数据!(很多网页爬虫都是用python写的)我们前端也可以用node写网页爬虫,来爬取数据!当然,我们来要对爬来的数据进行筛选和整合,筛选出我们想要的数据!我们可以引用cheerio,进行数据的筛选。爬取网页数据呢,可以配合nodejs的Promise对象,Promise对象是ES6的一个新的对象,最早是社区里面先提出来的,后来,jquery deferred等都引入关于jquery的deferred,我之前也写过一篇文章http://www.haorooms.com/post/jquery_deferred_img 有兴趣的可以看一下!

写爬虫代码,我在这里就不展开了,感兴趣的可以关注我的github,我会写一个简单的放上去,大家可以参考(ps暂时还没有写哦)。

request简介

http的request也很厉害!官方这么描述“This function allows one to transparently issue requests.”他的官方案例如下:

var postData = querystring.stringify({'msg':'Hello World!'});var options ={
hostname:'www.google.com',
port:80,
path:'/upload',
method:'POST',
headers:{'Content-Type':'application/x-www-form-urlencoded','Content-Length': postData.length
}};var req = http.request(options,(res)=>{
console.log(`STATUS: ${res.statusCode}`);
console.log(`HEADERS: ${JSON.stringify(res.headers)}`);
res.setEncoding('utf8');
res.on('data',(chunk)=>{
console.log(`BODY: ${chunk}`);});
res.on('end',()=>{
console.log('No more data in response.')})}); req.on('error',(e)=>{
console.log(`problem with request: ${e.message}`);});// write data to request body
req.write(postData);
req.end();

我们可以利用这个http的request来提交一下评论,我们可以获取网站的一些评论接口,通过上面options,我们可以配置请求的headers信息,进行网站的灌水评论!

通过这个方法,我们可以写一些网站灌水插件,自动发布网站评论等等!【ps,现在网站大多都有防止灌水的机制!所以大家建议大家不要干坏事哦!!!!】

nodejs入门教程之http的get和request简介及应用的更多相关文章

  1. HealthKit开发快速入门教程之HealthKit数据的操作

    HealthKit开发快速入门教程之HealthKit数据的操作 数据的表示 在HealthKit中,数据是最核心的元素.通过分析数据,人们可以看到相关的健康信息.例如,通过统计步数数据,人们可以知道 ...

  2. HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID

    HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID HealthKit开发准备工作 在开发一款HealthKit应用程序时,首先需要讲解HealthKit中有哪些类,在i ...

  3. HealthKit开发快速入门教程之HealthKit开发概述简介

    HealthKit开发快速入门教程之HealthKit开发概述简介 2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据.该移动应用平台被命名为“He ...

  4. github 入门教程之 github 访问速度太慢怎么办

    github 是全世界最流行的开源项目托管平台,其代表的开源文化从根本上改变了软件开发的方式. 基本上所有的需求都能从 github 上或多或少找到现成的实现方案,再也不用重头开始造轮子而是自定义轮子 ...

  5. C++入门教程之二:变量

    C++入门教程之二:变量 变量,顾名思义,意思是变化的量.变量的定义是计算机语言中能储存计算结果或能表示值的抽象概念.一个基本的程序需要变量,因此变量是程序设计中的一大重点. 变量基本结构 var_t ...

  6. [Mugeda HTML5技术教程之2] Mugeda HTML5富媒体平台简介

    [Mugeda HTML5技术教程之2] Mugeda HTML5动画平台简介 摘要:Mugeda提供基于云的平台,供开发人员和设计人员快速的开发.发布和统计基于HTML5的,包含丰富动画和交互的移动 ...

  7. webpack入门教程之Hello webpack(一)

    webpack入门教程系列为官网Tutorials的个人译文,旨在给予想要学习webpack的小伙伴一个另外的途径.如有不当之处,请大家指出. 看完入门教程系列后,你将会学习到如下内容: 1.如何安装 ...

  8. gitbook 入门教程之 gitbook 简介

    gitBook 是一个基于node.js的命令行工具,使用 github/git 和 markdown/asciiDoc 构建精美的电子书. gitbook 支持输出静态网页和电子书等多种格式,其中默 ...

  9. WMI入门教程之WMI中的类在哪里?

    Powershell专栏: https://www.jb51.net/list/list_234_1.htm https://www.pstips.net/get-wmiobject-becomes- ...

随机推荐

  1. jQuery动态添加li标签并添加属性和绑定事件

    代码如下: <%@page import="java.util.ArrayList"%> <%@ page language="java" c ...

  2. 微信小程序wx.pageScrollTo的替代方案

    wx.pageScrollTo这个微信小程序的api功能如下: 简而言之就是实现页面滚动的.但是在实际应用当中显得有些鸡肋,为啥呢?使用中有明显页面有明显的抖动,这无疑是极不好的用户体验.我用的华为6 ...

  3. Delphi DBGridEH中,选中行、列、单元格

    // 新增行后,默认首列 procedure TForm1.ADOQuery1AfterInsert(DataSet: TDataSet);begin  with DBGridEh1 do  begi ...

  4. c#调用系统默认软件打开应用

    System.Diagnostics.Process.Start(),参数为对应的应用路径 System.Diagnostics.Process.Start(((FileInfo)lv.Selecte ...

  5. 【bzoj4832】[Lydsy2017年4月月赛]抵制克苏恩 概率期望dp

    题目描述 你分别有a.b.c个血量为1.2.3的奴隶主,假设英雄血量无限,问:如果对面下出一个K点攻击力的克苏恩,你的英雄期望会受到到多少伤害. 输入 输入包含多局游戏. 第一行包含一个整数 T (T ...

  6. 【bzoj1579】[Usaco2009 Feb]Revamping Trails 道路升级 分层图最短路

    题目描述 每天,农夫John需要经过一些道路去检查牛棚N里面的牛. 农场上有M(1<=M<=50,000)条双向泥土道路,编号为1..M. 道路i连接牛棚P1_i和P2_i (1 < ...

  7. BZOJ3572:[HNOI2014]世界树——题解

    +++++++++++++++++++++++++++++++++++++++++++ +本文作者:luyouqi233. + +欢迎访问我的博客:http://www.cnblogs.com/luy ...

  8. 爆款PHP面试题

    $a = 3; $b = 6; if ($a = 4 || $b = 4) { $a++; $b++; } echo $a; //输出 1 echo $b; //输出 7 逛鸟哥博客,看评论区有个新手 ...

  9. HDOJ(HDU).1258 Sum It Up (DFS)

    HDOJ(HDU).1258 Sum It Up (DFS) [从零开始DFS(6)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双 ...

  10. ContestHunter暑假欢乐赛 SRM 08

    rating再次跳水www A题贴HR题解!HR智商流选手太强啦!CYC也好强%%%发现了len>10大概率是Y B题 dp+bit优化,据LLQ大爷说splay也可以优化,都好强啊.. C题跑 ...