まず適当なディレクトリを作成して移動
mkdir scraping
cd scraping
npm初期化
npm init -y
node-fetchとjsdomをインストール
※jsdomは Node.js v12以降が必要です
npm i node-fetch jsdom -D
ES Modules (ESM)を有効にする
node-fetchはver3からES Modules (ESM)専用になったので実行ファイルの拡張子を.mjsにするかpackage.jsonに"type": "module"
を追加してES Modules (ESM)を有効にする必要があります。
今回は"type": "module"
を追加する方法で行きます。
{
"name": "scraping",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"jsdom": "^19.0.0",
"node-fetch": "^3.1.0"
},
"type": "module"
}
実行ファイル(index.js)の作成
touch index.js
サンプルプログラムを作成
以下はexample.comのh1テキストを取得するコードになります。
import fetch from "node-fetch";
import jsdom from "jsdom";
const { JSDOM } = jsdom;
(async () => {
const res = await fetch("http://example.com");
const body = await res.text(); // HTMLをテキストで取得
const dom = new JSDOM(body); // パース
const h1Text = dom.window.document.querySelector("h1").textContent; // JavaScriptと同じ書き方ができます。
console.log(h1Text); // Example Domain
})();
実行
実行するとh1のテキスト”Example Domain”がログに出力されます。
node index.js
Example Domain