nodejs內(nèi)置模塊指的是除默認提供的語法之外丐巫,提供的美容,無需下載嫩海,直接引入冬殃,引入只寫名稱即可
引入的代碼
var http=require("http");
http可以充當兩個角色囚痴,一個是服務器,一個是客戶端
①當他充當服務器角色時
客戶端向他發(fā)送請求审葬,
http的createServer(創(chuàng)建服務方法)深滚,每次接收請求時奕谭,回調(diào)函數(shù)都會執(zhí)行,將請求和響應的對象作為實參傳入痴荐,createServer執(zhí)行完畢會返回一個對象血柳,調(diào)用對象下的listen方法設置監(jiān)聽端口號,每次更改代碼都需要重新啟動服務生兆。
為了避免多次啟動难捌,全局下載nodemon包,實時重新啟動服務鸦难,無需手動重啟服務根吁,簡便操作。
npm install nodemon -g
輸入nodemon http.js即可實現(xiàn)自動重啟
后綴js要加
var http = require("http");
http.createServer(function(req,res){
res.writeHead(200,{"Content-type":"text/html;charset=utf-8"});//200表示成功的狀態(tài)碼 設置文本編碼
res.write("hello");//使用res.write寫的內(nèi)容會響應并不會終止請求
res.end("響應并終止請求");//使用res.end響應并終止請求
}).listen(8080);//在網(wǎng)頁中輸入localhost:8080即可看到re.write和res.end寫的內(nèi)容
②作為客戶端合蔽,是向其他服務端口請求數(shù)據(jù)
var http=require("http");
http.get("http://www.baidu.com",function(res){
var str="";
res.on("data",function(chunk){//需要監(jiān)聽數(shù)據(jù)击敌,一點一點的拼才能拿到最終的數(shù)據(jù)
str+=chunk;
});
res.on("end",function(){
console.log(str);
})
})
因為這樣寫過程過于繁雜,所以引入第三方插件庫request拴事,參考老師的node-request模塊沃斤,下載引入,這個模塊是對http請求的封裝刃宵,用于http請求作為客戶端衡瓶,發(fā)送請求更方便。
var request = require("request");
request("http://www.baidu.com",function(error,res,body){
console.log(body);//body拿到的就是網(wǎng)頁上的數(shù)據(jù)
})
結合爬蟲的思想组去,將拿到的一堆找到想要的鞍陨,放到自己的數(shù)據(jù)庫中,借助cheerio包
下載引入
var request=require("request");
var cheerio=require("cheerio");
request("http://www.reibang.com/u/bdce7da974c5",function(error,res,body){
var $=cheerio.load(body);
var arr=[];
$(".content .title").each(function(){
arr.push({
title:$(this).text(),
des:$(this).next().text()
})
});
console.log(arr);
})