如何用 Nodejs 分析乙個簡單頁面

2021-09-07 03:18:15 字數 2479 閱讀 5975

在瀏覽器位址列中輸入localhost:3000,在頁面顯示 首頁 的 20 篇文章標題。

首先需要埠的監聽,這就需要引入 node 中最重要的模組之一express。其次需要對 頁面傳送類似 http 的請求以獲取頁面資料進行分析,這裡需要引入superagent模組。最後為了能使請求得到的 html 原始碼進行類似 dom 一般的操作,需要引入cheerio模組。

首先第一步,我們要實現埠的監聽,以便能將資訊輸出到頁面上。

我們可以用http模組:

}).listen(3000);當然我們更可以用封裝了http功能更加強大的 express 模組:

// 這句的意思就是引入 `express` 模組,並將它賦予 `express` 這個變數等待使用。

var express = require('express');

// 這個 handler 函式會接收 req 和 res 兩個物件,他們分別是請求的 request 和 response。

// request 中包含了瀏覽器傳來的各種資訊,比如 query 啊,body 啊,headers 啊之類的,都可以通過 req 物件訪問到。

// res 物件,我們一般不從裡面取資訊,而是通過它來定製我們向瀏覽器輸出的資訊,比如 header 資訊,比如想要向瀏覽器輸出的內容。這裡我們呼叫了它的 #send 方法,向瀏覽器輸出乙個字串。

res.send('hello world');

});});

接著我們需要獲取首頁的**從而能進行分析。superagent 就是服務端可以傳送 get post 等 http 請求的模組,直接看**,更多的 api 可以參考文件。

var express = require('express');

var superagent = require('superagent');

superagent

.get('')

.end(function (err, ans)

res.send(ans.text);

});});});

我們用 superagent 模組獲取了的頁面**,而用 cheerio 則可以進行類似 jquery 的 css 選擇器操作。cheerio 模組的詳細 api 可以參考 文件。

var express = require('express');

var cheerio = require('cheerio');

var superagent = require('superagent');

superagent

.get('')

.end(function (err, sres)

// sres.text 裡面儲存著網頁的 html 內容,將它傳給 cheerio.load 之後

// 就可以得到乙個實現了 jquery 介面的變數,我們習慣性地將它命名為 `$`

// 剩下就都是 jquery 的內容了

var $ = cheerio.load(sres.text);

var ans = '';

$('.titlelnk').each(function (index, item) );

// 將內容呈現到頁面

res.send(ans);

});});});

這時啟動localhost:3000,頁面就能顯示首頁的 20 篇文章標題啦(雖然沒樣式不太美觀)!(當然得先 node filename.js)

當然我們也可以直接把內容輸出在控制台:

var cheerio = require('cheerio');

var superagent = require('superagent');

superagent

.get('')

.end(function (err, sres)

// sres.text 裡面儲存著網頁的 html 內容,將它傳給 cheerio.load 之後

// 就可以得到乙個實現了 jquery 介面的變數,我們習慣性地將它命名為 `$`

// 剩下就都是 jquery 的內容了

var $ = cheerio.load(sres.text);

$('.titlelnk').each(function (index, item) );

});

參考:《node.js 包教不包會》

如何用nodejs啟乙個前端服務

1 新建資料夾,如 notice 2 新建頁面和js檔案,如 index.html server.js 3 index.html頁面內容隨你寫,如 你看到的這個頁面是首頁 body html 4 關鍵的 server.js 用來啟服務 var fs require fs 用來讀取檔案 var roo...

如何用nodejs建立乙個proxy 服務

應用場景 由於公司不能上外網,並且沒有區域網wifi,所以要在自己的mac機上搭乙個proxy然後通過android adb 命令做埠對映。android 機的資料流向 手機 電腦,電腦通過proxy server匹配到指定的server.收到請求後按照相反路線傳遞資料 編碼實現 1 建立乙個nod...

如何用C 寫乙個簡單的Login視窗

最近,看到網上經常會問如何進行視窗跳轉,大多數的問題都是牽扯到login視窗。其實,在visual studio 6以來,比較正確的做法,是判斷login視窗的返回值,然後決定是否開啟主窗體,那麼在c 中也是一樣的。具體做法如下 首先,建立login視窗,然後新增相應的輸入框和按鈕,設定視窗的acc...