最近公司安排給我一個任務,抓取頁面數據;http://survey.finance.sina.com.cn/static/20205/20131120.html?pid=20205&dpc=1,身爲一個前端,還沒搞事後臺的東西,硬着頭皮接下以後,就到網上各類找方法了。最終找到一個nodejs的方法,通過實踐以後,以爲很是好用,因此分享給你們。此教程從0開始 ,適用於歷來還沒接觸過nodejs的童鞋!
1.先下載 nodejs,這個很少說,而後雙擊安裝文件安裝。下載地址:http://www.nodejs.org/download/;
2.安裝完成後,直接打開cmd,鍵入 node -v,輸出node版本號,再輸入npm -v,輸出npm版本號 ,說明安裝成功,繼續下一步;
3.鍵入npm install express -g,意思是安裝express服務器到全局,做用是後面能夠建立項目;
4.鍵入npm install jade -g,安裝jade模塊;
5.鍵入npm install cheerio -g,安裝cheerio模塊,用來解析html很是方便,就像在瀏覽器中使用jquery同樣,能夠理解爲這是一套規則的模塊。
6.繼續鍵入express -V(此處是大寫,由於新版本才能識別),若是成功 會提示express的版本號,若是失敗,提示「express不是內部命令」,就須要再鍵入命令npm install express-generator -g;
7.再次輸入express -V,就會顯示正常了,另外,輸入node list能夠查看本身安裝了哪些模塊。;
8.而後輸入express myapp;做用是建立本身的項目,名爲myapp,路徑是c/用戶/xxx/myapp;實在不行就在計算機搜索myapp也行。
9.而後就能夠在項目里加js文件了,新建一個load.js文件,同時在目錄下新建一個number.txt的文件,代碼中會用到;
10.裏面的內容爲:javascript
var http = require("http"); // Utility function that downloads a URL and invokes // callback with the data. function download(url, callback) { http.get(url, function(res) { var data = ""; res.on('data', function (chunk) { data += chunk; }); res.on("end", function() { callback(data); }); }).on("error", function() { callback(null); }); } var cheerio = require("cheerio"); var fs =require('fs'); var url = "http://survey.finance.sina.com.cn/static/20205/20131120.html?pid=20205&dpc=1"; download(url, function(data) { if (data) { //console.log(data); var $ = cheerio.load(data); var total =$(".fred").text(); fs.appendFile('./number.txt',total,'utf-8',function(err){ if(err) {throw err;} }); var numArrs=$("div[class='d d-num']").text(); numArrs =numArrs.replace(/,/g,'');//把全部的逗號變爲空(數字中間的逗號) numArrs =numArrs.replace(/\s+/g, ',');//把全部的空字符串變爲一個逗號(數字與數字之間變爲逗號) numArrs =numArrs.replace(/,$/gi, '');//去除最後一個逗號 fs.appendFile('./number.txt',numArrs,'utf-8',function(err){ if(err) {throw err;} }); console.log("done"); } else console.log("error"); });
11.而後進入cmd,輸入cd myapp,進入myapp目錄,而後輸入命令node load.js,執行js文件,而後就能夠打開number.txt文件看到,裏面就有你想要的數據了。
到這裏,簡單的抓取數據就結束了。固然還能夠進行擴展,好比寫循環,日期變換,能夠獲取更多不一樣頁面的數據。
好的,分享就到這裏,這是第一次在w3cfuns發帖,但願你們支持喲!!html