かずきち。の日記

サーバサイドエンジニアのつぶやき

10時間使って年間10000時間の作業を20時間に削減した人 残業しまくって200時間普通に働いた人はどっちが優秀?ウェブ操作をいかに自動化するか?Selenium vs BeautifulSoup どっちがいいの?自動化のコツ

ウェブスクレイピングの自動化を調整する

www.youtube.com
www.youtube.com

なるべく決まった操作を自動化したいので、普段はBeautifulSoupを使っていますが…
高度なウェブページの場合プログラムで巡回すると…

f:id:kazukichi_0914:20211230164948g:plain

時々ウェブページが「あ、この操作はコンピュータがしてる!ブロックしなきゃ」
ということでブロックされて反省文扱いになります。
コンピュータはこの操作が人間が行っているのか?機械が行っているか判断するわけです。

なのでプログラムとばれないようなコーディングは重要

自動化しやすいタスクを考えたときに決まったローテーションは自動化しやすいのがポイントです。
学生的には夏休みの自由研究の「朝顔の観察」とかは自動化の対象になります。

f:id:kazukichi_0914:20211230165657g:plain

そして多くの人にとって自動化は高い機械などを購入しないと実装できないと考えています。
それはそうですよね。

f:id:kazukichi_0914:20211230170751g:plain
引用:http://pupupukaya.sblo.jp/article/185917960.html

2004年の駅の改札は有人改札でした。
それがたった17年でSuicaで入場できる時代です。

自動化ツールは社会だけでなく、個人でも利用できるようになっています。

それがseleniumで解決できます。

www.selenium.dev

これはブラウザ操作を人間がしているようにxpathを使って自動化します。
xpathが優れている理由はページの内容変化は考慮せず、抽出できるので
XqueryXlinkXSLTのいいとこ取りができます。

f:id:kazukichi_0914:20211230172130g:plain

がしかし、日本の会社の場合

10時間使って年間10000時間の作業を20時間に削減した人
残業しまくって200時間普通に働いた人

の功績は後者のほうが評価が高いらしいです。

自動化するときのコツ

いきなり「自動でマクドナルドのハンバーガーを作る」と考えないこと。
もっと細かく分割して操作を考えること。

冷蔵庫からトマトを取る

冷蔵庫からキャベツを取る

トマトを洗う

キャベツを洗う

冷蔵庫からパテを取り出す

調理器に電源を入れる

パテを焼く

3分測る

パテをピックアップする

f:id:kazukichi_0914:20211230174011g:plain

自動化マシンはその集合体です。
経営者目線では何時間の人件費が自動化で削減ができたかを気にするが、
具体的にどんな作業を自動化できたか?に注目したほうが価値がある。

日本の自動化は中途半端

f:id:kazukichi_0914:20211230174845g:plain
引用:https://www.sei-info.co.jp/workflow/keyword/workflow-system.html

日本の構造として、申請→承認(利用部署課長)→承認(利用部署部長)→承認(運用部署部長)→承認(運用部署課長)→担当者
のワークフローになっているので、

f:id:kazukichi_0914:20211230175422p:plain

クリティカルパスが必ずしも自分とは限らない。
エンドツーエンドでつないでくれればいいが、ここには多くの大人たちが入っていて、それがお役所仕事だったりする。

自動化seleniumの初心者用記事はたぬハックが良い

tanuhack.com
引用:
https://tanuhack.com/selenium/


selenium
pandas
あたりがまとまっていて非常に便利でよく使っています。