日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

运用node实现简单爬虫

發布時間:2025/6/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 运用node实现简单爬虫 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

node.js的強大就無需再去重復了,越來越多的公司在使用node.js,還有一點不得不提的優勢就是node用的是javascript的語言,對于前端開發工程師來說,沒有理由不去get這一強大的技能。現在本人也是在學習階段,結合自己做的一些demo進行總結。今天給大家分享一下用node.js實現一個簡易的爬蟲,希望能和大家一起交流探討。

目標:

當在瀏覽器中訪問'http://localhost:3000'的時候,可以以json的形式輸出慕課網首頁的 部分熱門課程(本人偶爾會去慕課網上看一些學習的視頻)

步驟

1.新建一個文件夾,進去之后'npm init'(這個命令的作用就是幫我們互動式地生成一份 最簡單的 package.json 文件,init 是 initialize 的意思,初始化。 )當一路回車并且填寫信息完畢后會出現一個package.json文件(首先需要在電腦上安裝node.js)。

2.安裝相應的依賴,在此例子中,需要用到的有cheerio,express,superagent。其中 express 是 Node.js 應用最廣泛的 web 框架,建議大家有時間可以多去官網看看其API,所以現在開始安裝依賴,通過命令cnpm i cheerio express superagent -S完成依賴的安裝。安裝完成后效果如下圖:

此時就完成了依賴的安裝,在package.json中的dependencies目錄下會有剛剛安裝的三個依賴

3.現在在文件夾里建一個js文件,比如取名為index.js,接下來就是在里面寫代碼,話不多說,直接上代碼,在代碼中也做了較為詳細的注釋。

//引入模塊 var express = require('express'); var cheerio = require('cheerio'); var superagent = require('superagent'); // 調用 express 實例,它是一個函數,不帶參數調用時,會返回一個 express 實例,將這個變量賦予 app 變量。 var app = express(); // app 本身有很多方法,其中包括最常用的 get、post、put/patch、delete,在這里我們調用其中的 get 方法,為我們的 `/` 路徑指定一個 handler 函數。 // 這個 handler 函數會接收 req 和 res 兩個對象,他們分別是請求的 request 和 response。 // request 中包含了瀏覽器傳來的各種信息,比如 query 啊,body 啊,headers 啊之類的,都可以通過 req 對象訪問到。 // res 對象,我們一般不從里面取信息,而是通過它來定制我們向瀏覽器輸出的信息,比如 header 信息,比如想要向瀏覽器輸出的內容。 //這里我們調用了它的 #send 方法,向瀏覽器輸出一個字符串。 app.get('/', function (req, res, next) {superagent.get('https://www.imooc.com/').end(function (err, sres) {if (err) {return next(err);}// sres.text 里面存儲著網頁的 html 內容,將它傳給 cheerio.load 之后// 就可以得到一個實現了 jquery 接口的變量,我們習慣性地將它命名為 `$`// 剩下就都是 jquery 的內容了var $ = cheerio.load(sres.text);var items = [];$('.banner-course-card .clearfix').each(function (idx, element) {var $element = $(element);items.push({title: $element.attr('title'),href: $element.attr('href')});});res.send(items);// 定義好我們 app 的行為之后,讓它監聽本地的 3000 端口。這里的第二個函數是個回調函數,//會在 listen 動作成功后執行,我們這里執行了一個命令行輸出操作,告訴我們監聽動作已完成。}); });app.listen(3000, function () {console.log('app is listening at port 3000'); }); 復制代碼

代碼解釋:

通過請求得到網頁的html內容并儲存于sres.text中,再傳給cheerio.load,得到一個實現jquery接口的變量,然后就類似于jquery選擇器的方法對頁面的元素的查找,拿到自己想要的數據即可。在定義好行為之后,讓它監聽本地的 3000 端口。這里的第二個函數是個回調函數,會在 listen 動作成功后執行,我們這里執行了一個命令行輸出操作,告訴我們監聽動作已完成。

運行:

輸入命令 ' node index.js ' , 會看到打印出'app is listening at port 3000 ',如圖所示:

打開瀏覽器,訪問'http://localhost:3000/',就可以看到我們爬蟲得來的數據哦,如下圖所示:

只是用了最基本的node實現了一個簡易的爬蟲效果,當然在這個例子中并沒有利用到node.js的異步并發特性,待深入研究再做分享,希望和大家多多交流探討。

總結

以上是生活随笔為你收集整理的运用node实现简单爬虫的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。