一,爬蟲及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 ,新年快樂~~~