[[diary/Kojima]]

・備忘録

X環境で、マウスを動かしたり、クリックしたりする作業を自動化するツールとして、[[xdotool:http://www.semicomplete.com/projects/xdotool/]]というのがある。

このツールには、あれこれ多数の機能が組み込まれているのだけれど、とりあえず最小限の機能を使うためのメモ。

- アプリのクリックするポイントを探す

 $ xdotool sleep 5 getmouselocation
 findclient: 31457952
 findclient: 31457952
 findclient: 31457952
 findclient: 31457952
 findclient: 31457952
 findclient: 31457950
 x:538 y:664 screen:0 window:31457950

sleep 5 している間に、クリックしたいところにマウスを持っていってやる。
この結果は、クリックすべきアプリの開いているWindowIDは 31457950 で、
クリックすべきポイントは(538, 664)であることを示す。

- このポイントを自動クリックして、必要な作業をするコマンドを実行する。

たとえば、ブラウザ経由で画像データをキャプチャしたいような場合は、

 #! /bin/sh
 WinID=31457950
 X=538
 Y=664
 last=100
 
 for page in `seq -w 1 $last` ; do
    xdotool mousemove $X $Y click 1 &
    sleep 3
    gm import -silent -window $WinID ${page}".jpg"
 done

みたいなシェルスクリプトを組めば、3秒ごとに指定したポイントにマウスを移動してクリック、
3秒間待ってブラウザの画面をJPEG形式でキャプチャする、みたいな作業が自動化できる。

こういう方法を使えば、javascriptな専用ブラウザ経由でしか閲覧できないサイトの画像データも
ローカルにダウンロードできるわけだけど、著作権的にはかなりグレーな気がするので、
個人使用以外の悪用厳禁。
- 旧世代の研究職の教育を受けた人間としては、可変な「ネット上のデータ」を参考文献等に上げるのはすごく気持ち悪くて、「自分が参照した時点ではこうだった」というのをローカルに残しておきたい感が強く、その手の情報サイトを使う際に便利かな、と書いてみたスクリプト。 -- [[kojima]] &new{2015-01-09 (金) 00:10:29};
- 教えて下さってありがとうございます。これはやっつけ仕事に最高に重宝しそうです。 -- [[梅にメジロ]] &new{2015-02-14 (土) 23:51:08};

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS