らくがきガレージ
オタライダーの管理人がバイクとかアニメとかゲームの話を垂れ流したり、描いたらくがきをUPしてみたりする、そんなブログ。旧らくがき部隊
CasperJSでスクレイピング
色々あってnode.jsと触っているのですが、調べていたらスクレイピングでいい感じに使えそうなCasperJSというのを見つけたのでちょっち触ってみました。
やってみたらスクレイピングするより、コマンドライン引数取得して使えるようにする方がしんどかったです。
通常使える(らしい)「process.argv」を使おうとすると何か怒られるので、あれこれ調べたら
http://casperjs.readthedocs.org/en/latest/cli.html
で、casper.cli.argsてのを使うらしいです。
たったこれだけなのに5時間以上とかかかりました、、、アホなのか。
ジョジョ見てアルスラーン見て笑点見て、鉄腕DASHと花もゆまで見てようやく出来ました。
時間かかり過ぎだこん畜生。
やっぱりマニュアル見ないといかんです。メリケン語だったけど('A`)
以下、今回へろへろ作ったサンプル。
指定のURLにアクセスしてフォームの指定要素にテキスト入れてから要素取得します。
送信ボタンのクリックとかも出来るらしいですが、今回はしていません。
URLとか要素のselectorとかは適当な奴です。
お約束ですが、これは実験用のスクリプトなので、もし参考にされる場合は適宜wait入れるとかして、相手のサーバに負荷をかけないにしてください。
相手のサーバ落とすの駄目、ぜったい。
やってみたらスクレイピングするより、コマンドライン引数取得して使えるようにする方がしんどかったです。
通常使える(らしい)「process.argv」を使おうとすると何か怒られるので、あれこれ調べたら
http://casperjs.readthedocs.org/en/latest/cli.html
で、casper.cli.argsてのを使うらしいです。
たったこれだけなのに5時間以上とかかかりました、、、アホなのか。
ジョジョ見てアルスラーン見て笑点見て、鉄腕DASHと花もゆまで見てようやく出来ました。
時間かかり過ぎだこん畜生。
やっぱりマニュアル見ないといかんです。メリケン語だったけど('A`)
以下、今回へろへろ作ったサンプル。
指定のURLにアクセスしてフォームの指定要素にテキスト入れてから要素取得します。
送信ボタンのクリックとかも出来るらしいですが、今回はしていません。
casper = require('casper').create();
//コマンドラインの引数をスペース区切りの文字列に変換
var args = casper.cli.args;
var argsStr = args.join(" ");
var url = 'http://www.hoge.co.jp';
var formSelector = "#fuga > form";
var itemAndValList = { "item" : argsStr };
var resultSelector = "#result li";
casper.start(url,function(){
//フォームに値を入力
casper.fill(formSelector,itemAndValList);
//waitの後、表示結果を取得
casper.wait(500, function() {
var list = casper.getElementsInfo(resultSelector);
//取得結果を配列に格納したのち、json形式で出力
var textList = new Array();
for(var num in list){
textList.push(list[num].text);
}
console.log(JSON.stringify(textList));
});
});
casper.run();
URLとか要素のselectorとかは適当な奴です。
お約束ですが、これは実験用のスクリプトなので、もし参考にされる場合は適宜wait入れるとかして、相手のサーバに負荷をかけないにしてください。
相手のサーバ落とすの駄目、ぜったい。
PR
この記事にコメントする
プロフィール
HN:
hiro
性別:
男性
pixivブックマーク
pixivで見つけた素敵画像あれこれ
最新記事
(01/03)
(07/20)
(05/24)
(05/17)
(05/07)