なんだかよく分からない謎の単純作業をcliclickとGASで自動化・前編

なんだかよく分からない謎の作業とは

こんな感じの謎のファイル(結構デカい)のリストページにて、ひたすら1000件近くある頭文字がXX(仮)のファイルをダウンロードしていくという作業(※怪しい仕事ではない)
ちなみにダウンロードは一個2分ほどかかる上に一つづつしか出来ない、あと2窓も出来ない。。

 

簡単に言うと会社で作っているシステムの割と根幹をなす外部データのダウンロードです。
そのシステム自体は超ハイテク(らしい)なんですが、偉い人から「やってると気が狂いそうなので」と回ってきたこの狂気のアナクロ作業がそのハイテク技術サービスの裏に隠されていたとは…ビックリですよね。

とりあえず指示通り手作業で3分の1ほどやってみたのですが、普通に気が狂いそうになったしこれは人間様がやる仕事ではないと確信したので自動化をもくろみました。
この記事では3つの効率化手順をご紹介します。

①紙ベースを使う

②マウス・キーボードマクロの「cliclick」でのダウンロード自動化

③GoogleスプレッドシートでGASを使ったダウンロード漏れチェック機能の実装

①と③は直接的に作業の自動化ではありませんが、一応1ファイルでも抜けたらアカンというデータだそうなので、こうやって抜けを防ぐシステムの強化・チェック作業の時短化も結局は作業全体の効率化だと思うのでまとめて紹介します。


 

効率化方法1:紙ベースを使う

これは私が事務員時代に学んだノウハウなので最初から実施しました。
やり方は簡単で、リストをプリントしダウンロード済みのファイルの行に赤ペンやら蛍光ペンで印を付ける、それだけです。
一見ローテクでついでに資源も使うし、効率化の真逆のように思われるのですが、個人的にはミスの減少に確実な効果があるので必ずやるようにしています。
今回プリントしてみると読める程度に縮小しても40ページ以上になりました。IT企業でこんな単純作業に紙を使いづらいかも…とも思いましたが、結果的には絶対に必要な手順だったなと実感しました。

💡今回紙面で出して良かったポイント💡

1.作業量の把握が簡単
1ダウンロードに約2分ほど掛かることが判明、プリントした1ページに約40項目があり、それがン十ページ続くこと、最後10ページには指定された名前のファイルが無いことなどがパラパラとめくるだけで把握できるので、かなり初期段階で作業時間の目安が立てられた。

2.作業の中断・再開が簡単
1日で終わらない仕事はもちろん、別の作業の合間にやっていたり一時的に席を外す場合にも、どこまで作業したかというのが一目で分かると結構な時間と気力節約になります。

3.作業開始以降のページ更新が把握できる
ネット上のデータの収集の怖いところは、いつ他の人がそのデータを書き換えるかわからないところです。ダウンロードデータの中身を変えられたら流石にお手上げですが、今回でも教えられていなかった「週一回くらいリストの途中途中でデータが追加されたり削除されたりする」という事実を、紙面とWEB上の連番のズレから早めに気付くことが出来ました(ファイル数でDL漏れがないか確認する際に重要)

・・・

これで大分DL漏れのリスクは下がりました。しかし重要なのは、手作業で一つ一つチェックしたからと言って、必ずしも全て間違いなくDLされたとは限らないことです…現に手作業でやっていた頃途中めんどくさくなって数個DLしたらチェックみたいに手を抜いていたら見事に10ファイルほど漏れていました。まぁこれは私が手を抜いたのが悪いですが、DL時間が毎回2分ほど掛かるので他の作業と並行して行う中で必ず訳の分からないミスが発生する(並行してやってる方にも)、「ミスをしない」という前提でやる方が間違いだろうと思います。(こういうのちゃんと出来る人もいると思いますが…私は無理)

まぁ要するに手作業はクソなのです・・・

というわけで私は「DL作業の自動化」「DL漏れチェック機能」の実装を決意しました。


効率化方法2:「cliclick」でのダウンロード自動化

手作業でやって行く中で分かったことは、ページの作りがダウンロードボタンが縦に並んでいるだけというシンプルさと指定のファイル名は一つのゾーンに固まって並んでいる(他ファイル名と混ざっていない)ことが幸いして、実質DLが終わるたびにtabとreturnを続けて押すという作業の連続であることです。

これならなんかキーボードを操作するマクロとかあるんじゃね…?

と考えてDLしながらひたすら調べた結果は、「Windows向けは自主製作ソフトが沢山ある(昔のっぽいので今使えるかは不明)けど、Mac向けはプロ向けの何でも出来るけど難しいのばっかり」という悲しいものでした(職場のPCがMac)

その中で探しに探して見つけたのが、Macのターミナルから簡単なキーボード・マウス操作を実行する「cliclick」というソフトだったのです!

cliclick – シェルから利用できるmacOS用のマウス・キーボードエミュレーター

ドラエモンと学ぶcliclickでmacの自動化3分クッキング

これ見てもらえれば簡単に使えちゃう素晴らしいソフトです。
職場PCはHomebrewが入っていなかったのでそれをダウンロードする必要がありましたがそれだけです。
余談ですが、今年4月までいた未だにWindows XPが蔓延る工事会社だと新しいソフトを導入するのは上司に相談するとそこからPCの管理をしてる総務部長に相談してほにゃら…とめんどくささが凄かったので、諦めるかまたは万一のリスクは承知で無断で入れたりな感じだったのですが、今のIT企業は上司にちょっと相談すればOKもらえるのでとてもありがたいなと思います。

🖱今回cliclickで行う操作🖱

1.ダウンロードページを開いたブラウザの何もない領域をクリックしてブラウザをアクティブにする

2.tabキーを押す

3.returnキーを押す

4.2分間(120000㍉セカンド)待つ

5.2~4を繰り返す

1~4は単純に操作を並べれば実行できます。しかし繰り返し処理はシェルスクリプトで書いて実行しないと出来ないので、今回はもう諦めて2~4をめちゃくちゃ繰り返し並べるという原始的なコマンドで実装することにしました。
下記がそのコードです。

ちなみに当然のようにこれ以外の作業が出来なくなってしまうので、使っていないノートPCを貸してもらってDL専用機として稼働させました。

これでDLの自動化は(不完全ながら)完成です🎉


後は最後にDL漏れがないかのチェック機能を作ります。いくら自動的にやったからといって、途中で作業中断・再開で再開位置を間違えたり、HDへファイルの移動など別の工程で漏れる可能性は残っています。
もちろんこの程度は気を付けて作業すれば防げる事態ですが、私はそこで神経を使うより最後にパパッとまとめてチェックして漏れがあったらリカバリーする方が楽ちんだと思うのです。

チェック機能ですが、以前ExcelのVBAを業務で使っていて、今Googleスプレッドシートの勉強に切り替えて本を読んでいたのでGoogle Apps Script(GAS)を使って作りました。ページからコピーしたファイル名とDLファイルの一覧のdiffをするスクリプトです。

また長くなりそうなので、それは後編にしたいと思います。

 


広島の丸選手がFAで巨人に行きましたね。
実は最近までセの別球団の応援を趣味にしていたのですが(今は離脱)、丸は他球団で珍しく好きな選手でした。
あまり球団と選手を繋げて考えていないので(自分がIT系の勉強を始めたのも、好きな時に別の会社に移れる技能の汎用性が良いと思ったからだし、人間は今いたいところにいるのが一番)どこからどこに移ったとかは全くどうでもいいことなんですが、なんとなくそんな気がしたなぁとそのニュースを見た時思いました。

言うて生涯広島一筋でキャリアを終えたらものすごく評価される状態だと思うんですけど(現役中の年俸はまぁ…アレですが)、丸ってちょっと変わった人だなと前々から思っていたので、なんとなく出るんじゃないかと。
なんか全てが感覚的な話なんですけど、野球選手みたいな芸能系じゃないけど芸能人的な人気がある人ってそれがメイン業務じゃないんで、ファンに対する距離感があんまり上手くない人が多いんですけど、それに対して丸って別に不愛想じゃないけど無駄にファンの機嫌取ろうみたいな感じが無くて。多分丸が移籍することなんとなく予想付いた人って結構多いと思うんですよ。
なんかそういうところが好きなんですけど、要するにそれって逆に誠実だと思うんですよね。人は「裏切られた」と思った時に一番傷付くので。

ちょっと話変わるけど、広島から自分の意志で他球団(特にセ)へ行く選手ってやっぱ自分の人生に対してシビアだなと思います。自分が知ってるのは今年引退した人と阪神の監督クビになった人ですが。
金銭の待遇はともかく在籍中も引退後も割とぬくぬくな環境を捨てて、不確定な将来を取れるというのは並大抵の胆力じゃないですよね。

私今気づいたけど、広島から自主的に出ていくタイプの選手が好きみたいですね…黒田さんも結構好きだし。別に広島が嫌いとかでは無いんですが…(強すぎるから他球団ファンとしては嫌いだったけど、一番好きな元選手の古巣なので謎の恩義(???)みたいなものは感じています)

マジで自分で書いてて滅茶苦茶他人の他人事に恩義とか言ってるのかなり謎なんですが、ファンってなんかそういうものですよね~🧚✨

コメントを残す

メールアドレスが公開されることはありません。