Node.jsでスクレイピングとWebサーバーを開発する手順です。
# プロジェクトのディレクトリ作成
$ mkdir scraping-server
$ cd scraping-server
# パッケージのインストール
$ npm init
$ npm install express axios cheerio
インストールしている外部パッケージは以下の3つです。
まず以下の内容で main.js を作成します。
const express = require("express");
const app = express();
app.get("/", async function (req, res, next) {
res.json("test");
});
app.listen(3000);
その後、以下コマンドを実行して http://localhost:3000
にブラウザでアクセスすると、”test”
の文字が表示されます。
$ node main.js
これで、Webサーバーの起動ができました。
スクレイピングで取得した情報を表示する main.js に以下の実装を追加します。
const express = require("express");
/* 外部パッケージの追加 */
const axios = require("axios");
const cheerio = require("cheerio");
/* この関数を追加 */
async function getItems() {
// プログラミング言語一覧記事を取得
const url = "https://en.wikipedia.org/wiki/List_of_programming_languages";
const res = await axios.get(url);
// HTMLをパース
$ = cheerio.load(res.data);
let items = [];
$(".div-col li").each((i, elem) => {
items.push($(elem).text());
});
return items;
}
const app = express();
app.get("/", async function (req, res, next) {
/* 追加した関数を使用する */
let items = await getItems();
res.json(items);
});
app.listen(3000);
追加実装の後、 $ node main.js
を再実行して http://localhost:3000
にアクセスすると、
Wikipediaのページから取得したプログラミング言語一覧の文字が表示されるようになります。