調査メモ/Selenium, PhantomJS などWebDriver経由でのスクレイピングについてググった(2015-10-08時点)

  • 0
    いいね
  • 0
    コメント

    HTMLのパーサで、変化の激しいW3Cの世界で、互換性や新機能に追従していくのは難しそう。
    そこで、いっそのこと実際のブラウザのパーサ機能だけは使えないか?つまり、ヘッドレスブラウザならどうか、JSを動かす必要は無くて、HTMLのパーサ機能だけ欲しい。

    ということで、ヘッドレスブラウザのレンダリング機能を扱えるアプローチを探るため、SeleniumやWebDriver系でどう扱えそうかかるくググったメモです。

    Chrome用 + Chrome自身の開発速度が速いこともあり、簡単にパース機能「だけ」使える状況では無さそう。

    PhantomJS + WebDriverのアプローチはどうか?軽くググッてみる。xpathで要素取り出せたりとかができれば便利だろう。

    結論 : PhantomJSのWebDriverは、結局内部的にJSが動く。そのため、JSをdisabledにしたらODM要素の取り出しなど全部動かなくなるので今回の観点からはナンセンス。

    どうも、HtmlUnitをWebDriverでラップしたHtmlUnitDriverが最速らしい。これならJSも動かさずにいけるかも?

    とりあえずメモなので結論は出せません。ただ、以前IEのconditional comments で躓いたことがありますが、JSoupの方はissueがopenなまま ( https://github.com/jhy/jsoup/issues/360 ) で、HtmlUnit の方も多少対応はされてるようですがどこまで耐えられるのかちょっと心配です。