@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ページあるので、手作業でやるよりかなりの時短になります!
- 次回は、銘柄の更に詳細な情報を取得していこうと思います。
コメント