Pythonはじめて1か月で、
- 何を作れる?
- 働きながらどこまで作れる?
- どのように作った?
- 出退勤のブラウザ操作を、1/3くらい自動化
- 外部ライブラリの使い方が、なんとなくわかる
- Google、YouTubeをフル活用
はじめまして。普段はメーカーで機械設計をしているベルと申します
この記事では、Pythonを学んで1か月で、作れたプログラムをご紹介します
あなたが、会社員をしながらPython学び、1か月でどこまで作れるようになるのか?の参考にしてください
基礎を終えただけの割には、そこそこ自動化できた気もしますが、もう少し成果が欲しいところ…
できたのはブラウザ自動起動+操作自動化(不完全)
#出勤・退勤ボタンを押したら、Webアプリを自動操作・入力される
#15分刻みの打刻→7分半を基準に、繰り下げ・繰り上げ打刻をする
#WebDriverをSeleniumからインポート
#WebDriverも自動でアップデートされる
from selenium import webdriver
from selenium.webdriver.edge.service import Service
from webdriver_manager.microsoft import EdgeChromiumDriverManager
import time
#Edgeを起動する
options = webdriver.EdgeOptions()
service = Service(executable_path=r"ドライバーの保存されているURL")
options.add_experimental_option("detach", True) #ブラウザを立ち上げたままにする
#ブラウザをユーザー情報を知った状態で立ち上げる為、ユーザー情報を保管している場所を指定する
#場所の確認方法は、edgeの場合は、URLに”edge://version”で、プロファイルパス
PROFILE_PATH = r"プロファイルパス"
options.add_argument("--user-data-dir=" + PROFILE_PATH)
#ブラウザの起動
driver = webdriver.Edge(service=service, options=options)
#プロキシ入力ウィンドウを表示させるため、適当なページを開く。今回は仕事でよく使うGoogle翻訳を開く。
driver.get("https://translate.google.co.jp/?sl=auto&tl=ja&op=translate")
#ブラウザの立ち上がりと、プロキシ入力が完了するまで待つ
time.sleep(10)
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
#pyautoguiでプロキシを入力する
import pyautogui
import time
#プロキシ入力画面が表示されたら、IDには自動でカーソル入力されているのでIDを入力する
pyautogui.write("ID")
pyautogui.press("tab")
pyautogui.write("パスワード")
pyautogui.press("enter")
#新しいタブを開く
driver.switch_to.new_window("tab")
#会社の出退勤ページに飛ぶ
driver.get("(ページのURL)")
#ウィンドウを最大化する。後で、pyautoguiでマウス操作をするため
driver.maximize_window()
#会社のWebページの表示がブラウザの画面サイズに自動調整される為、開いた後に一度更新する
driver.refresh
#Webページが開くのを待つ。
time.sleep(60)
#以下、今後の予定
#文字認識で自分の名前の位置を特定
#タイムアウト時間の設定
まだ不完全ですが、これだけのコードを書くことができました
休日の空き時間とか活用しました
やってみて思ったのは、コードを書くのはほぼコピペ
足りないところを自力で補おうとすると、非常に時間がかかるということ
もっと経験を積み重ねれば早く、無駄なく作れるのかもしれません
初心者がここまでコードを書けた理由
Pythonを学び始めて1ヶ月で、コードを書くことに、次の3つが役に立ちました
- Google×Qiita
- Pythonライブラリ×YouTube
- VS Code×プラグイン
順番に解説してきます
Google×Qiita
わからないことは、とにかくググることで、なんとかコードを書いています
さらに、ググったときに答えを教えてくれるサイトは、だいたい”Qiita”というプログラミング情報共有サイト
有益な情報がたくさんあって、普通に記事を読んでいるだけでも楽しめます
例えば、「python ○○ 自動化」のような語句で、Googleで検索
いくつかのサイトを開いて、自分の必要なところを組み合わせてコードを作成し、実行
エラーが出たら、エラーについてググる
この繰り返しで、ひたすらプログラムが望んだ動きをするように、コードを書き連ねています
Pythonライブラリ×YouTube
自分の望む機能を叶えてくれる、Python外部ライブラリ
さらに、その使い方を教えてくれるYouTube動画は、初めて1ヶ月でも、なんとかコードを書けるようにしてくれます
実装したい機能について調べると、Pythonではたいてい、必要な外部ライブラリを提案されます
例えば、私が作成した出退勤自動化には、下記のライブラリを使っています
- ブラウザ自動化:Selenium
- 入力操作自動化:PyAutoGUI
ただ、各ライブラリには、それぞれのコードの書き方があるため、使い方を学ぶ必要があります
しかし、Googleで調べた記事だけでは、ライブラリの使い方はわかりにくいです
そこで、知らないライブラリを初めて使う場合は、YouTubeの使い方動画を見たところ、これが正解でした
動画のほうが、入力したコードの動きがわかりやすく、自分の手も動かすので身に付きやすい
VS Code×プラグイン
コードエディタ”Visual Studio Code”(以下”VS Code”)と、豊富なプラグインのおかげで、初心者でもコードを書くことができます
豊富なプラグインのおかげで、ド素人の私でも、コードをミスなく書くことができます
例えば、誤字脱字に対して、コードエディタ上で「もしかして、この記述?」という提案をしてくれます
機械設計の分野では、図面の誤字脱字・誤記指示忘れは当たり前
同じように、誤字脱字の提案を、CADからしてもらいたい…
機械設計でいうCADのようなものですが、CADに比べると圧倒的に効率的で、使いやすいです
Pythonは公式でもエディタ(IDE)を配布していますが、VS Codeを使うのが間違いありません
初心者の身でも感じた不便さ
初心者でありながら、プログラミングする上で不便に感じたモノは、次の3つです
- Windows環境
- プロキシ認証
- 会社独自のWebサイト
順番に解説していきます
Windows環境
Windows環境の場合、環境構築という最大の壁が、最初に立ちはだかります
環境構築とは、PythonをPCで動かせるようにするための設定を行うことです
ただ、この設定がWindowsの場合、フォルダ構成がわかりづらいため初心者には非常に厳しかったです
とはいえ、Windowsでも環境構築すれば普通に使えて、普通に動きます
環境構築という壁さえ超えれば、とりあえず安心してOKです
「Macだと環境構築が楽」とよく耳にしていたので、MacBookの人がうらやましい…
プロキシ認証
会社が導入している、プロキシ認証が邪魔すぎます
あらゆる、基本的なコードに割り込んできて、エラーを出す原因になります
会社が嫌いになるレベルです
例えば、外部ライブラリのインストールも、通常の手順ではエラーが出ます
さらに、プロキシ認証を前提に書かれている情報も少ないです
そのため、初心者がエラーを解決する難易度が、跳ね上がり、挫折しやすくなります
プロキシ認証のせいでエラーが出てキレそうになったときは、一度席から離れて、一息つくことをオススメします
会社独自のWebサイト
会社独自のWebサイトが、ブラウザの開発者画面で構成が非常にわかりづらいため、Pythonで自動化しにくいです
出退勤時に、私の会社が自社開発した出退勤管理アプリ(Webページ)を操作する必要があります
しかし、Microsoft Power Automateで作られたためか、通常のブラウザのコード構成と異なります
そのため、Pythonで自動化する際に、必要な要素を抽出しにくいです
おそらく、「Microsoft Power Automateで作られてるならば、同じアプリを使って自動化しろよ」と思うかもしれません
しかし、あくまでも”Pythonの勉強”を目的としているので、Pythonでなんとかしたいのです…
1ヶ月では何もかも足りない
実際にコードを作成して思ったのが、「Pythonの知識も含め、情報技術まわりの知識が圧倒的に足りていない」ということ
理由は、ただ自動化したい操作に合わせて、ググって出てきたものをつなぎ合わせているだけ
「それだけでも十分」という方もいるかもしれませんが、なぜそのコードなのかも、よくわかっていない場合が多いです
実際にチュートリアルや解説を見て、同じようにコードを書いても、なぜかエラーが発生
そのエラーの修正で30分かかり、しかも原因が大したことがない、というケースが非常に多いです
そのため、これからは学習にもそれなりの時間を費やすようにします
いままでは、基礎を最低限にして、即実践と言うのが最適解と考えていました
しかし、本格的なエンジニアを目指すのであれば、知識理解も必要と判断しました
まとめ:初心者の方、まずは1か月だけでもPythonを始めよう
- Google・YouTubeフル活用でなんとか書けるので、まずは書いてみよう
- 会社のプログラミング環境は悪い
- とはいえ、あまりにも知識がないためもう少しInputも行う
「いまの仕事をもっと楽にしたい」と考えているならば、まずはPythonをやってみることをオススメします
なにごとも、やってみなければ効果があるのか、成果が出るのかわかりません
開始1か月で、なんとか動くコードを作れるくらいにはなりますので、まずは1か月、隙間時間にPythonを始めてみませんか?
私もまだ作成途中ですが、自動化できたことに感動し、作れたことでやる気も出ました
また、これから自動化したい作業が次々に浮かんでくるようになり、純粋に楽しいです
会社でも、プログラミングができる機械設計者は周りを見てもほぼいないので、多少の優越感を得ることができます
プログラミングを学ぶことはこれからの時代、必要になりつつあります
IT業界に身を置いていなくても、これから必要になる可能性が高いため、学ぶことをオススメします
オマケ:時間がない方は、とにかく1日15分からでも始めよう
新しいことに挑戦するにあたり、習慣化が重要です
そこで、オススメの本をご紹介します