1. 程式人生 > >nodejs入門教程之http的get和request簡介及應用

nodejs入門教程之http的get和request簡介及應用

adding orm col luci string odi func cor mar

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