[[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