Casper.jsでスクレイピング


JavaScriptなどを多用しているような動きのあるページをスクレイピングしたい場合に使えるテクニックです。
Casper.jsは npm で比較的簡単にインストールできそうですので、サーバ側でも簡単に実現できるのでオススメです^^


😎 Installation

casperjsのインストール方法はこちら。

npm install casperjs -g

🐹 Source Code

Casper.jsを使ってページを取得するスクリプトはこちら。
今回は引数にURLとHTMLの保存先を指定できるようにしてみました。

// scrape.js
var casper = require('casper').create();
casper.userAgent('Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19');

var url = casper.cli.args[0];
var outputPath = casper.cli.args[1];

casper.start(url);

casper.then(function() {
casper.wait(5000, function() {
// Get HTML
var html = this.evaluate(function(){
return document.querySelector("html").outerHTML;
});

// Save HTML
var fs = require('fs');
fs.write(outputPath, html, 'w');
});
});

casper.run();

あとは下のコマンドを呼び出せば対象URLのHTMLが保存されます。

casperjs scrape.js http://www.ugtop.com/spill.shtml /tmp/casper_scraped3.html

Happy Hacking!

🚌 参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍