nodejs入门教程之http的get和request简介及应用
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: 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简介及应用
前言
上一篇文章,我介绍了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 bodyres.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,现在网站大多都有防止灌水的机制!所以大家建议大家不要干坏事哦!!!!】
转载于:https://www.cnblogs.com/hanguidong/p/9307391.html
nodejs入门教程之http的get和request简介及应用相关推荐
- nodejs入门教程之CommonJs学习(二)
学习背景 很早之前,我们在网页中写js逻辑常常都是一个js文件从头写到尾,也很少考虑去分成多个模块.渐渐的随着项目增大,js代码维护就变得异常困难,为了解决这个问题前端模块化应运而生,比如用的比较多的 ...
- HealthKit开发快速入门教程之HealthKit数据的操作
HealthKit开发快速入门教程之HealthKit数据的操作 数据的表示 在HealthKit中,数据是最核心的元素.通过分析数据,人们可以看到相关的健康信息.例如,通过统计步数数据,人们可以知 ...
- HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID
HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID HealthKit开发准备工作 在开发一款HealthKit应用程序时,首先需要讲解HealthKit中有哪些类,在i ...
- HealthKit开发快速入门教程之HealthKit开发概述简介
HealthKit开发快速入门教程之HealthKit开发概述简介 2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据.该移动应用平台被命名为&qu ...
- python语言if语句-Python入门教程之if语句的用法
这篇文章主要介绍了Python入门教程之if语句的用法,是Python入门的基础知识,需要的朋友可以参考下 OK分享完毕!需要Python资料的可以加QQ群:832339352 进群免费领取下面资料! ...
- java jni helloword_JNI入门教程之HelloWorld篇
JNI入门教程之HelloWorld篇 来源:互联网 宽屏版 评论 2008-05-31 09:07:11 本文讲述如何使用JNI技术实现HelloWorld,目的是让读者熟悉JNI的机制并编写第 ...
- linux lvm界面,Linux使用入门教程之LVM
Linux使用入门教程之LVM 1.pvscan #查看当前系统是否存在 PV(物理卷) 2.fdisk -l #查看当前系统分区 3.pvcreate /dev/sda{5,6} /dev/sdb1 ...
- php zend framework 教程,Zend Framework入门教程之Zend_Session会话操作详解
本文实例讲述了Zend Framework入门教程之Zend_Session会话操作.分享给大家供大家参考,具体如下: 会话命名空间 实现会话 代码: require_once "Zend/ ...
- [Mugeda HTML5技术教程之2] Mugeda HTML5富媒体平台简介
[Mugeda HTML5技术教程之2] Mugeda HTML5动画平台简介 摘要:Mugeda提供基于云的平台,供开发人员和设计人员快速的开发.发布和统计基于HTML5的,包含丰富动画和交互的移动 ...
最新文章
- Element-ui学习笔记3--Form表单(二)
- matlab 文件名分离_MATLAB偏微分方程
- 说一说限制字数的输入框踩的坑
- 中国移动研究院2020春招技术综合JAVA在线编程题第一题
- 机器学习——图解SVM中gamma和c参数的作用
- 最近邻插值算法 python实现
- 苹果Mac触控栏使用技巧
- android随机摇号代码,抽奖摇号系统随机性算法介绍
- android 手机型号获取root,Android用代码获取手机root之后的最高权限
- warpaffine 旋转有一部分消失_OpenCV warpAffine的天坑
- 以后 博文 要做 中文对照,利于国际化,利于自己熟悉英语。
- 微信公众号最佳实践 ( 10.2)回复QQ表情和Emoji表情
- 手机端rem布局详解(淘宝无限适配)
- npm配置vue-cli所遇EACCES权限问题及解决方案
- 如何在Android上玩经典复古游戏
- [Java学习] 最小生成树——Prim算法
- iOS-MMKV的使用
- 【无标题】ensp华为基础配置命令
- 矢网校准到底在较什么呢?
- 中国大学MOOC货币金融学试题及答案
热门文章
- matlab txt写入excel,怎么把matlab的GUI文本编辑器中的数据存入EXCEl
- 利用逆矩阵解线性方程组_QR方法求解矩阵所有特征值(一)
- java读书心得_Java读书笔记 20100815
- 如今网络营销行业火爆网络营销外包专员如何做好整合营销?
- 企业网络推广专员浅析企业网络推广中网站关键词排名优化有何技巧?
- 做好三个“避免”,加速网站排名提升!
- php子域枚举,PHP中实现多值枚举
- 计算机技术在环境中的好处,浅谈计算机技术在德育现代化中的作用
- 开发日记 20210311 重新定义未来
- 我在Suse 11 Sp3上使用anaconda安装TensorFlow的过程记录