記事一覧

『超簡単』Pythonを使って自動化プログラムを作る方法 ブラウザ編

bandicam 2020-11-02 11-00-13-448

プログラミングという言葉を聞くと一見難しい印象が強いと感じられる方が多いと思います。今回は素人でも簡単にプログラミングできるPythonをご紹介いたします。プログラミングもいろんな用途がありますが、ここではブラウザ上で簡単な動作の繰り返しをみていきます。例えばブラウザを閉じる、開くの繰り返しや対象物をダウンロードするといったものです。



Pythonではこんなことができます


以下動画は気象庁のナウキャスト予報画像からとある地域に絞って自動保存する様子です。
対象のページを自動で表示させたりボタンをクリック、自動終了など可能です。





環境構築


それでは実際にPythonを入れてみましょう。私もPythonを始めたころ、インターネットでググっても細かいやり方が書いてありませんでした。まるで、プログラミングする君ならわかっているでしょ?的な感じで専門用語が次々と出てきました。一つとして覚える必要ありません。大切なことはパソコンのメモ帳に箇条書きで書くだけで大丈夫です。

まずは、Pythonというソフトを導入します。
ページ中段にある新しいバージョンのDownloadをクリックします。
ダウンロード先: Python



bandicam 2020-11-02 10-00-46-522


ページが切り替わるので下部へスクロールします。下記のどちらかからダウンロードします。
Windows x86-64 embeddable zip file→解凍する必要あり
Windows x86-64 executable installer→解凍なしでインストール

開くとこんな感じになっていればPythonの導入は完了です。


bandicam 2020-11-02 10-06-33-347


ChromeDriverを導入


次に自動実行させるために必要なブラウザの拡張アイテムみたいなものを入れます。使うブラウザはGooglechromeなのでブラウザは普通にパソコンに入れておいてください。ChromeDriver


下記画像の箇所(最新バージョン)をクリックします。


bandicam 2020-11-02 10-10-38-113


chromedriver_win32.zipをダウンロード解凍します。


bandicam 2020-11-02 10-10-55-648


フォルダからCドライブを開きます。


bandicam 2020-11-02 10-12-15-831


(driver)というフォルダを作ります。


bandicam 2020-11-02 10-12-22-392


作成したフォルダの中に先ほどダウンロードしたchromedriverを移動させます。


bandicam 2020-11-02 10-12-27-276


使用するモジュールSelenium


モジュールSeleniumは、自動化させるためのプログラミングを予め設定してくれているようなツールです。

コマンドプロンプトを開いて下記プログラムを入力してください。
pip install selenium


bandicam 2020-11-02 10-16-21-529


私の場合、既に入れてあるのでこのような画面になります。


bandicam 2020-11-02 10-16-26-646


自動化スタート


それではいよいよPythonで自動化プログラムをつくってみましょう。手始めに何のサイトをどのように動作させたいかを決めましょう。ここでは、私のサイトで行っていきます。

from selenium import webdriver
import time
driver = webdriver.Chrome("c:/driver/chromedriver.exe")
driver.get("ここに動作させたいURLを入れる")

各種説明
1文目2文目3文目は、このプログラムを動かすために必要な物なので抜かないように。
4文目は使用するURLを入力してください。

例えば以下は指定サイトを開いて5秒待機させた後、ページ更新するというプログラムです。
from selenium import webdriver
import time
driver = webdriver.Chrome("c:/driver/chromedriver.exe")
driver.get("http://android-appbank.com/")
time.sleep(5)←待機時間
driver.refresh()←ページ更新
element.send_keys(Keys.ENTER)←エンター

待機時間を3000秒などにすることも可能です。

指定した場所をクリックするには、エレメント指定が必要です。ページに各要素というものが含まれています。
指定ページを普通に開き右クリック(検証)を開きます。左上のマウスカーソルアイコンをクリックしてどの箇所を自動クリックさせたいかその場所にマウスカーソルを移動させてその部分をクリックします。すると右側の検証ページで要素が表示されます。下記画像ではelement-title部分です。


bandicam 2020-11-02 10-39-21-291


from selenium import webdriver
import time
driver = webdriver.Chrome("c:/driver/chromedriver.exe")
driver.get("http://android-appbank.com/")
time.sleep(5)

driver.find_element_by_class_name('ここに要素を貼り付け').click()
element.send_keys(Keys.ENTER)

これでページを開いて指定の箇所を開くというプログラムが書けました。


他のプログラム操作一覧


・終了
driver.close()

・ページを更新
driver.refresh()

・Enterキー              
element.send_keys(Keys.ENTER)

・ALTキー(通常キーと組み合わせ)    
element.send_keys(Keys.ALT,"f")
                   
・←キー                
element.send_keys(Keys.LEFT)
・→キー                
element.send_keys(Keys.RIGHT)
・↑キー                
element.send_keys(Keys.UP)
・↓キー                
element.send_keys(Keys.DOWN)
・Ctrlキー(通常キーと組み合わせ)    
element.send_keys(Keys.CONTROL,"a")
                     
・Deleteキー              
element.send_keys(Keys.DELETE)

・HOMEキー              
element.send_keys(Keys.HOME)

・ENDキー               
element.send_keys(Keys.END)

・ESCAPEキー             
element.send_keys(Keys.ESCAPE)

・イコール(=)入力           
element.send_keys(Keys.EQUALS)

・F1キー               
element.send_keys(Keys.F1)

・シフトキー(通常キーと組み合わせ)  
element.send_keys(Keys.SHIFT,"abc"));
                     
・ページダウンキー          
element.send_keys(Keys.PAGE_DOWN)

・ページアップキー          
element.send_keys(Keys.PAGE_UP)

・スペースキー            
element.send_keys(Keys.SPACE)

・リターンキー            
element.send_keys(Keys.RETURN)

・タブキー              
element.send_keys(Keys.TAB)


雑感


これといった難しい操作は一切ないので簡単にプログラムに触れることができるのが特徴のPythonですがいかがだったでしょうか。導入までは、やや複雑な箇所もありますが、一度構築してしまえばあとはプログラミングだけなので簡単です。ここでは紹介しきれていませんが、画像の保存といったことも要素を選択すればできますので是非色々と試してみてください。
関連記事

コメント

コメントの投稿

非公開コメント