Pythonで学ぶ自動化処理
はじめに
このnoteでは、AI AcademyなどでPythonの入門は学んだけど、実際に業務で活用したい!という方への記事です。
またこのnoteの内容は、毎日単純な作業や繰り返し作業を行なっている方が、Pythonを活用して身の回りの事を自動化させて、仕事で役立てるための内容です。これからPythonで自動化したい!という方に向けて書いております。内容は基本的な事を扱いますが、業務で使える部分があるかもしれないので是非参考にしてみてください。
またこのnoteで学ぶ一部は、AI Academy BootcampのPythonコースで学ぶものも含まれていますのが、Bootcampではより詳細な内容を扱っていますので、是非受講頂ければと思います!
Pythonで自動化するために
Pythonで自動化するためには、SeleniumやPyAutoGuiなどを用いる必要があります。
今回は、Webブラウザを自動操作を自動化したいのと、比較的扱いやすいSeleniumを用いて自動化を行います。
Seleniumとは
Selenium(セレニウム)は、Webブラウザで行うクリック操作やキーボード入力などをプログラム上から自動で操作できるようにしたライブラリです。
Seleniumを使うと、ブラウザの自動操作や次のような事が出来るようになります。
1) Amazonなどの会員サイトに自動でログインし、特定の商品を購入まで行う。
2) Webフォームの入力を自動化
3) SNSの自動ツイート、自動フォロー、自動いいね!
Seleniumのインストール
Seleniumを利用するには、まずSelenium自体をインストールする必要があります。
次に、Google Chrome(ブラウザ)とChrome Driverが必要です。
Seleniumのインストールは次のコマンドを実行して下さい。
Macの方ターミナル、WindowsではコマンドプロンプトやWindows PowerShellをご利用ください。
※お使いのPCにPython3.7以上がインストールされている前提です。
pip install selenium
Google ChromeとChrome Driverをインストールする
今回、Seleniumを使ってWebブラウザの操作を自動化していきますが、
Seleniumを使うには、他にもGoogle ChromeとChrome Driverをインストールすします。
・Google Chromeのインストール
・Chrome Driverのインストール
※お使いのChromeのバージョンに適したdriverを入れる必要があります。
バージョンの確認は下記のURLをChromeで開き、そのバージョンと同じChrome Driverをインストールしてください。
chrome://settings/help
インストールしたzipファイルを解答すると、Chrome Driverがインストール完了です。
Google検索の自動化
まずは試しに、Seleniumを使って、Google検索を自動化させて見ましょう。
先ほどインストールしたChrome Driverが配置してある階層と同じ場所に、Pythonプログラムを作成します。
Jupyter Notebookを使う場合は、Jupyter Notebookが起動してある階層に、先ほどインストールしたChrome Driverを配置してください。
※今動いているパス(PATH)を調べるには、
Macの方は、pwdコマンド、Windowsの方はdirコマンドで確認できます。
# Selenium Web driverの読み込み
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# Chromeを動かすドライバを読み込み
driver = webdriver.Chrome("./chromedriver")
driver.get("https://google.co.jp")
# ID属性から検索用テキストボックスの要素を取得し
# 文字列"selenium"をテキストボックスに入力
text = driver.find_element_by_name("q")
# AI Academy と検索する
text.send_keys("AI Academy")
# エンターキーを押す
driver.find_element_by_name("q").send_keys(Keys.ENTER)
# driver.quit() # ブラウザを閉じる
上記のコードを実行すると、Chromeブラウザが自動で起動し、Google検索エンジンに、『AI Academy』と入力しエンターキーを自動で行なってくれたかと思います。
コードの解説を簡単にすると、
Seleniumを使ったり、自動でエンタキーを押したりするために、webdriverの読み込みとKeysとChromeを動かすドライバを読み込みを読み込みます。
次に、driver.get(URL)とすると、そのURLを開いています。
その後、find_element_by_name(name属性)と指定することで、そのname属性の要素を取得する事が出来ます。
次にsend_keys()を実行することで、引数に渡した値をキーボード入力することが出来ます。
send_keys(Keys.ENTER)とすると、エンターキーを実行します。
Twitterの自動ログイン
では、次にTwitterに自動でログインしてみましょう。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys as keys
# Chromeを動かすドライバを読み込み
driver = webdriver.Chrome("./chromedriver")
# URLの指定
url = "https://twitter.com/login"
# TwitterのURLにアクセス
driver.get(url)
# 入力フォームにIDとパスワードを入力する
username = driver.find_element_by_css_selector('#page-container > div > div.signin-wrapper > form > fieldset > div:nth-child(2) > input')
password = driver.find_element_by_css_selector('#page-container > div > div.signin-wrapper > form > fieldset > div:nth-child(3) > input')
username.send_keys("@TwitterIDを書く")
password.send_keys("Twitterのパスワードを書く")
password.send_keys(keys.ENTER)
上記コードのpassword.send_keys("")の部分と、password.send_keys("")の部分を書き換えて、実行するとIDとパスワードが正しいとTwitterに自動でログインが出来たはずです。
解説が必要な部分は、find_elements_by_css_selector()くらいですが、
先ほどのfind_element_by_name()の引数はname属性を渡して要素を取得していましたがfind_elements_by_css_selectorは引数にcssセレクタを指定することで要素を取得することが出来ます。
またCSSセレクタの取得は、Chromeの検証ツールの右クリックで簡単にし取得する事が出来ます。
詳しくはこちらの記事をご確認ください。
最後に
このnoteが良いなと思った方は是非シェアやいいね!頂けると大変嬉しいです!
また、noteだけだと良く理解できなかったという方は、是非Bootcampにお越しいただけましたら、直接ご説明いたしますので、受講お待ちしております!
AI Academy Bootcamp Pythonコース
この記事が気に入ったらサポートをしてみませんか?