読者です 読者をやめる 読者になる 読者になる

編修前記

"まとまる前の文章" を "まとめる前" の文章

出会ったのは亡霊

PhantomJSに出会った

もうかれこれ、ちらしずしのデプロイ当初から困惑していたjsによって動的に生成されるhtmlを拾ってくる話、コイツのおかげで解決できた。
webクローリングについて1mmも詳しくないままにちらしずしをスタートアップしてしまったおかげでだいぶ場当たり的対処をしてきたものが、ついに良い感じになってまた一歩大人になった感じ。

詳しい話

  • PhantomJSは画面のないブラウザ。ヘッドレスって言うらしい。
  • そもそも問題は何かというとカスミとかのHPがチラシの情報をjsで動的に生成していて、単にurllib2で取ってきてもjsが実行できないのでスクレイピングできなかったということ(ここに気づくのにn年かかった)
    • 仕方ないのでelectronでhtmlを描画させてそれをローカルに落とすとかいうことをしていた
    • でもcronではelectronは実行できなかったので手動cronで毎回研究室に来てはコマンドを叩いていた
  • PhantomJSは画面が生成されずに内部でhtmlを読み込んでjsも実行してくれるため、cronでも叩けた
  • 任せている作業は単純で、スーパーのURLを渡して、読み込んだhtml(js生成分含)をconsole.log(page.content);して出力をローカルファイルにリダイレクトしてるだけ

学んだこと

  • PhantomJSはいいぞ
  • ガルパンはいいぞ(円盤が届いてから研究室でずっと放映してる。自分一人の時はプロジェクタをお借りして)