NodeJs編寫小爬蟲


一,爬蟲及Robots協議

爬蟲,是一種自動獲取網頁內容的程序。是搜索引擎的重要組成部分,因此搜索引擎優化很大程度上就是針對爬蟲而做出的優化。


robots.txt是一個文本文件,robots是一個協議,而不是一個命令。robots.txt是爬蟲要查看的第一個文件。robots.txt文件告訴爬蟲在服務器上什么文件是可以被查看的,搜索機器人就會按照該文件中的內容來確定訪問的范圍。






如上圖,我們可以在網站中直接訪問robots.txt文件查看網站禁止訪問和允許訪問的文件。

二,使用NodeJs爬去網頁需要安裝的模塊

Express
Express 是一個基於 Node.js 平台的極簡、靈活的 web 應用開發框架,它提供一系列強大的特性,幫助你創建各種 Web 和移動設備應用。
中文API:http://www.expressjs.com.cn/

Request
簡化了http請求。
API:https://www.npmjs.com/package/request


Cheerio
以一種類似JQ的方式處理爬取到的網頁。
API:https://www.npmjs.com/package/cheerio

這三個模塊在安裝NodeJs 之后,可以使用npm命令進行安裝。

三,簡單爬取網頁示例

var express = require('express');
var app = express();
var request = require('request');
var cheerio = require('cheerio');
app.get('/', function(req, res){
    request('http://blog.csdn.net/lhc1105', function (error, response, body) {
      if (!error && response.statusCode == 200) {
        $ = cheerio.load(body);//當前的$,它是拿到了整個body的前端選擇器
      console.log($('.user_name').text()); //我博客的獲取用戶名
      }else{
         console.log("思密達,沒爬取到用戶名,再來一次");
      }
})
});
app.listen(3000);


之后,



然后在瀏覽器中訪問:http://localhost:3000/,就能看到輸出的用戶名。

感覺比python爬取方便點兒,主要是對網頁元素解析上,省去了很多正則表達式。

by the way ,新年快樂~~~


免責聲明!

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



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