每時每刻不管你睡了還是沒睡,互聯網都會有海量的數據來來往往,有客服端到服務端,有服務端到服務端。http的get和request完成的角色即為數據的獲取及提交,接下來我們動手寫一個簡單的小爬蟲來爬爬菜鳥教程中關于node的章節的課程界面。
爬取Node.js 教程首頁的所有數據
建立node-http.js,其中代碼如下,代碼中有詳細的的注釋,自行理解了哈
var http=require('http');//獲取http模塊var url='http://www.runoob.com/nodejs/nodejs-tutorial.html';//定義node官網地址變量http.get(url,function(res){ var html=''; // 這里將會觸發data事件,不斷觸發不斷跟新html直至完畢 res.on('data',function(data){ html +=data }) // 當數據獲取完成將會觸發end事件,這里將會打印初node官網的html res.on('end',function(){ console.log(html) })}).on('error',function(){ console.log('獲取node官網相關數據出錯')})終端執行結果中發現這個頁面的html全部被爬下來了
G:/node/node-http> node node-http.js<!Doctype html><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta property="qc:admins" content="465267610762567726375" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Node.js 教程 | 菜鳥教程</title><link rel='dns-prefetch' href='//s.w.org' /><link rel="canonical" /><meta name="keywords" content="Node.js 教程,node,Node.js,nodejs"><meta name="description" content="Node.js 教程 簡單的說 Node.js 就是運行在服務端的 JavaScript。 Node.js 是一個基于Chrome JavaScript 運行時建立的一個平臺。 Node.js是一個事件驅動I/O服務端JavaScript環境,基于Google的V8引擎,V8引擎執行Javascript的速度非常快,性能非常好。 誰適合閱讀本教程? 如果你是一個前端程序員,你不懂得像PHP、Python或Ruby等動態編程語言,.."><link rel="shortcut icon" rel="external nofollow" rel="external nofollow" mce_ rel="external nofollow" rel="external nofollow" type="image/x-icon"><link rel="stylesheet" href="/wp-content/themes/runoob/style.css?v=1.141" rel="external nofollow" type="text/css" media="all" /><link rel="stylesheet" rel="external nofollow" media="all" /><!--[if gte IE 9]><!-->。。。。。。。。。。這里只展示部分不然你半天看不到頭
當然爬個HTML對于我們來說沒啥用,現在我們要做些過濾,比如這個node教程中我想知道課程目錄有哪些,這樣可以選擇感興趣的去看看學學。直接上代碼吧還是:
不過在此之前我們需要下載cheerio模塊(cheerio是nodejs的抓取頁面模塊,為服務器特別定制的,快速、靈活、實施的jQuery核心實現。適合各種Web爬蟲程序。)具體詳細介紹你們可以自行去搜索了解,cheerio的用跟jquery的用法非常類似,所以不用擔心上手繁瑣。
新聞熱點
疑難解答
圖片精選