LoginSignup
12
11

More than 5 years have passed since last update.

casperJSでFlickrから画像をスクレイピングする

Last updated at Posted at 2016-01-09

サンプルとしてFlickrから
ネコという単語を入力してその検索結果の画像のスクリーンショットを保存するスクリプトです

imageFlickr.js
//For CasperJS SOURCE
var casper = require('casper').create();

//casperを開始する
casper.start();

//Flickrを開く
casper.open("https://www.flickr.com/");

//検索するワード
var word = "ネコ";

//フォームにワードを入力する
casper.then(function(){
  this.fill("form",{text:word},true);
});

//スクリーンショットを撮影する
casper.viewport(1280,1024).then(function(){
  casper.captureSelector('imgcat.png',"#search-unified-content[role='main']");
});

//実行開始する
casper.run();

こんな感じで実行.
casperjs imageFlickr.js

でもこれじゃあ不便だよね?

コマンドライン引数を受け取れるようにした方が絶対いい!

imageFlickr2.js
//For CasperJS SOURCE
var casper = require('casper').create();

//コマンドライン引数を受け取る
var word = casper.cli.args;

//casperを開始する
casper.start();

//google画像検索を開く
casper.open("https://www.flickr.com/");

//フォームにワードを入力する
casper.then(function(){
  this.fill("form",{text:word[0]},true);
});

//スクリーンショットを撮影する
casper.viewport(1280,1024).then(function(){
  casper.captureSelector('imgcat.png',"#search-unified-content[role='main']");
});

//実行開始する
casper.run();

これで引数を受け取れるようになる.
var word = casper.cli.args;
こんな感じで実行.
casperjs imageFlickr2.js ネコちゃん(第一引数)

シェルでもできたほうがいいよね?

imageFlickr.sh
#!bin/sh
casperjs googleimage.js $1
//画像を開く
open imgcat.png
こんな感じで実行.
sh imageFlickr.sh ネコちゃん

imgcat.png

最後に簡単な説明として

casperJSはphantomJSを操作する為のjavascriptです。
phantomJSは見えないブラウザだと思ってください。

研究の画像収集の短縮になど使ってください。( ^ω^ )

Flickrから画像をダウンロードするのはすなおにAPIを使った方が早そうなので省きます。

大学のページをスクレイピングして解析したくて調べていたら、casperjsに出会いました。作業がは捗りそうです。

12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11