スクレイピングしたページからtitleタグや特定のクラス名の要素の中身を取得したいことって多いですよね?
でも実際それをやろうと、スクレイピングして返ってきたStringタイプのデータを、indexOfとかsliceとか使って切り分けていくみたいな地味な実装が必要になってきます。
正直めんどくさい、、、
そこで今回はNode.jsでスクレイピングして、そこからjQueryで簡単に要素を取得してみました😚
まずは完成コードから
まずはエラー対応とかtry,catchとかを実装しない、リクエストが成功した時のみのシンプルなコードです。
const request = require('request');
request({ url: 'https://coding-woman.com', encoding: null },
function (error, response, body) {
if (!error && response.statusCode == 200) {
const $ = require("cheerio").load(body);
console.log($("title").text());
}
});
// とある女性のCoding Blog
このコードがやっていることを言語化すると以下のような感じです。
- 指定したURLにリクエストを投げる
- 指定したページをパース
- jQueryと同じ構文でtitleタグ内のテキストを取得
インストールするパッケージ
このスクレイピングに必要なパッケージをインストールします。
Node.jsは既にインストールされている状態が前提です。
$ npm install cheerio require
まとめ
びっくりするほど簡単にスクレイピングしたページからhtmlの要素を取得することができました!