Puppeteer を使って Yahoo のニュースをスクレイピングしてみる

kanazawa.rb meetup #72 で Puppeteer を触る機会があったので残しておく。

Puppeteer

github.com

インストールは

npm i puppeteer

ver 1.7.0 から puppeteer-core ってのが公開されたらしくこっちだと Chromium を同時にダウンロードされることはないみたい。

すること

f:id:k6i:20180825141555p:plain

Yahoo のページから上記のニュースの一覧を取得してコンソールに表示してみる

プログラム

Puppeteer を使って Yahoo のニュースをスクレイピング

こんな感じで、 「ブラウザを起動して、ヤフーのページを開いて、ニュース取得する Javascript を実行するっていう」を Node.js を使ってコマンドラインから実行できる。

実行結果

node scraping_yahoonews.js
[ 'オスプレイ 佐賀県民の不安写真',
  '関東など猛暑日 東京22日ぶり写真NEW',
  'ロヒンギャ難民 長期化に焦り写真NEW',
  '愛知岐阜の遺体 仕事で面識か写真NEW',
  '旧盆の海にお化け?気象台解説写真',
  '吉田輝星 内定先監督の不安写真',
  'みやぞん まずは1.55キロ完泳写真NEW',
  '南米熱狂 FLOWのアニソン写真' ]

感想

Puppeteer の理解より先に、Javascript の書き方の理解が必要そう。 async/await とかどうなってるのか全然わかってないし、 jQuery 使って〜とかの知識しかなくてちょっと辛い。