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,現在網站大多都有防止灌水的機制!所以大家建議大家不要干壞事哦!!!!】


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM