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簡介及應用
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簡介及應用