第2回 TypeScript×Puppeteerで始めるスクレイピング – データ取得

プログラミング
スポンサーリンク

@kijiです。TyepScript×Puppeteerで始めるスクレイピングの2回目です!
前回の記事は以下になります。まだやっていない方はこちらで環境構築を行いましょう。

今回は、とあるサイトに接続した後、DOMの情報を読み取り、ログに出力させたいと思います。
サイトはYahooファイナンスのランキングページ、を使います。

環境

$ node -v
v14.17.3

# typescript
4.4.2

# puppeteer
10.2.0

やりたいこと

画面は上記のようになす。表の中にあるコード、市場、名称、取引値、1株配当、配当利回りを1行ずつ取得して、Json形式にしてログに市注力したいと思います。

ラベルの取得方法

スクレイピングではまず、対象のオブジェクトを検索し、HTMLElementを取得します。HTMLElementは、ラベルだったり、styleの情報やclickイベントなどを持ったオブジェクトになります。

Puppeteerでオブジェクトを検索する方法はいくつかありますが、今回は$$と$を使います。
$$は一覧などの複数のオブジェクトを取得する際に使用します。$は単一のオブジェクトを取得するのに使います。

ソースコードは以下のようになります

// 複数のオブジェクトを取得する
const list = await page.$$('セレクタ');

// 単一のオブジェクトを取得する
const item = await company.$("セレクタ");

ソースコード – 全量

実行結果

無事ログ出力できました!

まとめ

  • Puppeteerを使って配当利回りの一覧をすべて取得できました。
  • 全部で50銘柄 × 59ページあるので、手作業でやるよりかなりの時短になります!
  • 次回は、銘柄の更に詳細な情報を取得していこうと思います。

参考書籍

コメント

タイトルとURLをコピーしました