ワテのブログ

The fundamental things apply As time goes by.

2014年5月26日月曜日

nodejs + selenium + phantomjs でheadless scraping

スポンサーリンク

動機

いままでrubyでselenium使ってたけどnodejsでいいんじゃね?
typescriptいい感じだし。JavaScriptで統一したい年頃だし。phantomjs使えばheadlessでスクレイピングできちゃうよ。

[PR]

環境構築

  1. 始めにnodejsありき。
  2. npm install selenium-webdriver
  3. git clone git://github.com/ariya/phantomjs.git
  4. cd phantomjs
  5. git checkout 1.9
  6. ./build.sh
  7. ビルドが終わるまで気長に待つ

実行

phantomjsをJSON Wire Protocolモードで起動しておく

$ /hogehoge/phantomjs/bin/phantomjs -w &

お試しスクリプトを作成

// test.js
var wb = require('selenium-webdriver');
var driver = new wb.Builder().
  usingServer('http://localhost:8910').
  withCapabilities(wb.Capabilities.chrome()).
  build();

driver.get('http://www.google.com').
then(function () {
    return driver.getPageSource();
}).
then(function (src) {
    console.log(src);
});

$ node test.js

無事実行できればhttp://www.google.comのhtmlソースが表示されます。
htmlをパースしたければcheerioが便利です。

スポンサーリンク