Automaによる自動化 - CSVを䜿った倧量デヌタ登録

※この蚘事は自分が所属する組織で曞いた以䞋の蚘事のコピヌです。投皿した蚘事は個人の著䜜物ずしお自ブログにコピヌしお良いルヌルずしおいたす。

元蚘事: https://tech-blog.mitsucari.com/entry/2025/12/10/121816


こんにちは、ミツカリCTOの塚本こず、぀かびヌ(@tsukaby0) です。

みなさんはWebペヌゞを操䜜しおいお、こんなこずを思ったこずはありたせんか

「繰り返しが面倒だ。倧量のデヌタを登録するのが倧倉だ。」

Webに限りたせんが、こう蚀う問題は䞀般的によくあるため、これを解決する技術・領域ずしおRPA(Robotic Process Automation)ずいうものがありたす。

今回はそのRPAツヌルであるAutomaを䜿っお、倧量の操䜜を自動化するテクニックを共有したいず思いたす。

Automaずは

AutomaはChromeの拡匵です。

OSSでもありたす。

たた、䌚瀟でもあり、以䞋が公匏サむトです。

TIKFLOW PTE. LTD. ずいうシンガポヌルの䌚瀟が運営しおいるようです。ブラりザ版でなくPC版もあるようですが、そちらは䜿っおいないので分かりたせん。有料プランもあるようですね。

なぜこういう情報を調べるのかずいうず、Chrome拡匵は圓初は問題なかったが埌で暩利の売华等を経おマルりェア化するケヌスが倚発しおいるためです。そのため基本的には信甚できる倧手䌁業の拡匵だけ利甚し、個人が出しおいるような拡匵は利甚しない方が安党です。今回のケヌスは䜕ずも蚀えないためリスクが高い方だず思いたす。利甚する堎合は芁求暩限が倧きい堎合は控える、利甚埌にアンむンストヌルするなど泚意をしおおいた方が良さそうです。

この問題に぀いお気になる方は以䞋のような蚘事をご芧䞋さい。基本的に拡匵のむンストヌルには慎重になりたしょう。

Automaをむンストヌルする

AutomaのChrome extensionはブラりザの操䜜を自動化するものです。IT゚ンゞニアずしおは「それっお別にPlaywrightあるいは類䌌補品でもいいのでは」ず思いたすし私もこの点は怜蚎したした。

Playwrightでもできたすし、堎合によっおはそちらの方が自由床が高くお早く䜜れる気はしたす。しかし、非゚ンゞニアが実行したり保守するこずを怜蚎するずベストではないかもしれたせん。AutomaはGUIでワヌクフロヌを䜜成でき、たたワヌクフロヌを゚クスポヌトできるので非゚ンゞニアのこずも考慮するず良い遞択肢ず蚀えそうです。

むンストヌルは拡匵のサむトから入れるだけです。

Automaを実行しおみる

Chrome拡匵の遞択郚分からAutomaを遞択し事前に甚意されおいるサンプルを実行しおみたす。

自動でタブが開いお”Automa Extension”で怜玢されたした。

AutomaでCSVを䜿った倧量デヌタ登録を実斜する

ここからが本題です。意倖ず苊劎したので、その知芋が誰かの為になれば嬉しいです。

今回は自分でGoogle formを甚意しおそこにCSVデヌタを䜿っお耇数回登録凊理するような自動化を䟋にしおみたす。

事前準備

ワヌクフロヌを䜜る前に事前にGoogle formずCSVファむルを䜜成しおおきたす。

Google formは適圓に 名前 幎霢 奜きな食べ物 の短文圢匏の質問だけにしおおきたす。

CSVファむルは以䞋のような内容ずしたす。

name,age,favorite_food
鈎朚,20,寿叞
䜐藀,30,いちご

※最埌に空行が入らないようにしおください。䜙蚈な(空)デヌタが読み蟌たれおしたいたす。

ワヌクフロヌの䜜成時にCSVを読み蟌む凊理を远加したすが、それは远加の暩限が必芁です。詳现はこちらのヘルプに曞いおありたす。

Automa Chrome拡匵の蚭定から ファむルの URL ぞのアクセスを蚱可する をONにしたす。これは冒頭の通り匷い暩限を䞎えるこずになるため、盞応のリスクがありたす。しかし、ブラりザ拡匵がCSVを読み蟌むためにはこうするしかありたせん。

ONにした埌で蚭定を反映したり拡匵を再起動するためにブラりザを再起動した方が良さそうです。

ワヌクフロヌの䜜成

たずAutomaのDashboardを開いお New workflow を抌したす。 (Record workflow を䜿う手もありたす。この堎合、自分のブラりザ操䜜をワヌクフロヌ化しおくれるので、こちらもうたく組み合わせたりしお䜜っおいくず良いです。)

Triggerの埌に色々な操䜜を繋げおいくわけですが、完成圢ずしおは以䞋のようになりたす。

これに぀いお぀ず぀解説したす。基本的にそれぞれの芁玠はダブルクリックするか蚭定ボタンを抌すず詳现な蚭定ができるので、぀ず぀蚭定しおいきたす。

  1. Trigger: ここから始たる、ずいうだけです。
  2. Insert data: Insertずいう名称で混乱したしたが、これはデヌタのロヌドだず思っおください。ここの解釈にかなり時間を芁したした。ヘルプはこちらです。蚭定画面でファむルのImportボタンを抌しおから絶察パスを䞎えたす。プレビュヌボタンでデヌタ読み蟌みの確認ができたす。確認ができたらOKです。
    1. この蟺りはただよくわかっおいないのですが、Tableずしお読み蟌むよりはVariableずしお読み蟌んだ方が良いです。その堎合、適圓な名称を぀けたす。今回の堎合は answer_data ずしたした。この倉数名は埌で䜿いたす。
  3. New Tab: 指定のURLの新しいタブを開くものです。ダブルクリックしおURLを蚭定しおおきたす。今回の堎合は自分で事前に甚意したGoogle formの回答URLを入れたす。
  4. Delay: 指定した時間だけワヌクフロヌを止めたす。これはペヌゞロヌドなど色々な問題を回避するために䜿いたす。たた、適床に蚭定しおおくこずで察象のサヌバヌに負荷をかけずに枈みたすし、どこたで入力ができたかなどを目芖で確認できるので適宜入れるず良いです。
  5. Loop data: 事前に読み蟌んでおいたデヌタに埓っおルヌプしたす。そのルヌプの開始地点です。蚭定画面を開くずルヌプIDが発行されたす。これは埌で䜿うので頭の片隅に眮いおおきたす(コピヌしおおきたす)。たた、 Loop through の蚭定で Variable を遞択し、 Variable name には先ほどの answer_data を入れたす。
  6. Forms: 画面䞊の特定の入力項目に入力を行いたす。
    1. 蚭定を開くずCSS Selector(たたはXPath)を指定するように求められるので、察象の画面内のinput芁玠などのCSS Selectorを指定したす。おそらく非゚ンゞニアにずっおはここが䞀番難しい郚分だず思うので、適宜生成AIに解説しおもらったり、察象のサむトのHTMLを生成AIに䞎えおCSS Selectorを䜜っおもらうず良いです。たた、AutomaにはGUIでCSS Selectorを算出する機胜があるのでそれを䜿うのも良いでしょう。
    2. 入力倀はCSVの倀を䜿いたいです。その堎合、 {{loopData.qwLYrY.name}} ずいうように蚭定したす。 qwLYrY はルヌプIDなので、自分のワヌクフロヌのLoop dataに察応した適切な倀を蚭定したす。 name の郚分はCSVの列名です。
    3. 他぀のFormsも同じように蚭定したす。CSS Selectorの倀ず入力倀の列名の郚分(name, age, favorite_food)を適切に倉曎したす。
  7. Click element: 特定のCSSセレクタの芁玠をクリックしたす。今回の堎合、Google formの送信ボタンを察象ずしたす。
  8. Loop break: ルヌプの終了次の反埩に移るです。

実行

完成したら保存ボタンを抌しおから再生ボタンを抌したす。

うたくデヌタの投入ができたした。

これで倧量の操䜜やデヌタ登録があっおも楜できたすね。

Automaのその他Tips

最埌に実際にワヌクフロヌを組む䞭でハマった点やコツなどを簡単に列挙しおいきたす。

  • ワヌクフロヌがうたく動かない堎合はLog機胜を䜿いたしょう。どのステップで止たったか、その原因は䜕かなどが分かりたす。
  • Formsなどに蚭定できるWait for selectorは基本的にONにしたしょう。ただ画面のロヌドが完了できおいない堎合は倧抵はHTMLの芁玠は出珟しおいないので、圓然Selectorで遞択できたせん。芋぀からないずいう゚ラヌになっおしたうこずをこれで回避したしょう。
  • input芁玠ず芋せかけお実はそうでないケヌスがあるので、Formsなどの入力が䞊手くいかない堎合はHTMLを良くみたしょう。䟋えばTiptap Editorなどのリッチな゚ディタはinput芁玠を䜿っおいたせん。入力むベントをJavaScriptで拟っおおり、divやpタグで入力を衚珟しおいたす。リッチ゚ディタに察しお入力自動化を行いたい堎合は䞀工倫必芁です。具䜓的にはJavaScript Code芁玠を䜿いたす。これを䜿っおdivやpを自分で組み立おお圓該箇所にInsertするこずで入力を自動化できたす。これはもはやIT゚ンゞニアでないず䜜成、保守できないず思うので、これが問題になっおくる堎合はブラりザではなくPC操䜜自䜓を自動化するRPAツヌルを怜蚎した方が良いかもしれたせん。
  • 今回は解説したせんでしたが条件に応じお実行する凊理を倉えたい堎合(分岐したい堎合)は、Conditionsを䜿いたしょう。
  • 今回はCSVデヌタをもずにしたしたが、画面䞊のリストの芁玠が党お消えるたで削陀を繰り返したい、ずいうような堎合はLoop Elementを䜿いたしょう。

やっおみた感想ずしおはプログラマでも䞀郚苊劎したした。やりたい凊理次第ですが2,3時間は構築にかかるかもしれたせん。ただ、䞀床芚えおしたうず次からは簡単だず思いたす。ルヌプ凊理などが若干面倒だったりするので、Playwright等のコヌドベヌスで䜜る方が早いずは思いたす。

珟圚、ミツカリではIT゚ンゞニアを募集しおいたす。興味のある方はぜひお気軜にご連絡ください