月額5$の安価で借りれるLightsailを使ってスクレイピングしてみました。
Node.js付きのインスタンスを作れるので、これを使っていきます。
まず情報をとるだけなら http/http
モジュールを使ってとることはできます。
しかしこれでWebページのDOM操作は至難ですので専門のものを使います。
試したものとして cheerio-httpcli というモジュールはシンプルで使いやすいです。
過去にも使っていたこともあって、これを使いたかったけど動的に変化するページに弱い。最近はどこも ajax で順次読み込みをしているため使えないことが多かった。
今回は puppeteer という chrome を利用するものを使います。
関数などが直感的で使いやすいです。
Windowsで使う分には何の問題もありませんでしたが、Lightsail(Ubuntu)で使うために多少セッティングが必要です。
UbuntuにChromeを入れる
まず Chrome のダウンロードページ一番下から他のプラットフォーム→Linux選択
debファイルを保存してAWSに送っておきます。
インストール
1 2 3 4 |
sudo apt update sudo apt install libappindicator1 gconf-service libasound2 libgconf-2-4 libnspr4 libxss1 fonts-liberation libnss3 xdg-utils sudo dpkg -i google-chrome-stable_current_amd64.deb |
1 |
npm install puppeteer |
※windowsでインストールしたものを持っていくだけだとダメです。
これで大体のページは簡単にスクレイピング(クローリング)できます。