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的幾個經常使用的模塊及簡單的案例,今天咱們再來重點看一下nodejs的http模塊,關於http模塊,咱們能夠看下nodejs官方文檔。關於http模塊,有興趣的能夠研究一下node的源碼。http模塊功能是很強大的,今天主要介紹他的get和request方法!html
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的狀態碼!node
將上面代碼稍微改進一下。python
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}`)})
運行一下這段代碼,會怎麼樣?會把我這個頁面大源碼給爬下來了!jquery
也就是說,咱們能夠利用http的get方法,寫一個爬蟲,來爬取網頁數據!(不少網頁爬蟲都是用python寫的)咱們前端也能夠用node寫網頁爬蟲,來爬取數據!固然,咱們來要對爬來的數據進行篩選和整合,篩選出咱們想要的數據!咱們能夠引用cheerio,進行數據的篩選。爬取網頁數據呢,能夠配合nodejs的Promise對象,Promise對象是ES6的一個新的對象,最先是社區裏面先提出來的,後來,jquery deferred等都引入關於jquery的deferred,我以前也寫過一篇文章http://www.haorooms.com/post/jquery_deferred_img 有興趣的能夠看一下!git
寫爬蟲代碼,我在這裏就不展開了,感興趣的能夠關注個人github,我會寫一個簡單的放上去,你們能夠參考(ps暫時尚未寫哦)。github
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信息,進行網站的灌水評論!api
經過這個方法,咱們能夠寫一些網站灌水插件,自動發佈網站評論等等!【ps,如今網站大多都有防止灌水的機制!因此你們建議你們不要幹壞事哦!!!!】app