どうもヨスケです。
Pythonプログラミングの学習も少しずつ進んでいます。
前回はBeautiful Soupでwebスクレイピングのプログラミングに挑戦し、Yahoo!ニュースの主要トピックスの情報を抽出することができました。
今回は、「Seleniumu」というWebの自動テスト用ライブラリを使用して、Webブラウザを自動で操作するプログラムです。
例にもれず、各自でコピーして遊んでみてください。
① webページを開く
② webページ上の特定のリンクをクリックする
③ Googleでの自動検索し、検索結果から、自分のブログに飛ぶ
Seleniumでできること
Seleniumライブラリでできることがたくさんあります。
・任意のURLを開く
・戻る、進む、ページ更新
・フォームの自動送信
・要素の取得、状態の確認
・要素のクリック、マウス操作、キーボード動作のエミュレート
・ウィンドウの位置やサイズ設定
・クッキーの取得や削除
・指定条件まで任意の体位
・任意のタイミングでJavaScriptを実行
・スクリーンショットの保存
基本的に、ブラウザでwebページを閲覧する人間と同じ操作が可能となっています。
Seleniumのインストールとブラウザ操作準備
プログラム作成の前に、Seleniumのインストールとブラウザ操作のためのドライバをインストールする必要があります。
Seleniumのインストール
ヨスケはVisual Studio CodeをPython開発環境として使用しています。
Seleniumのインストールはターミナル画面で
pip install selenium
と打ちます。これでOK!
ブラウザ操作をするためのドライバを準備
今回はGoogle Chromeをブラウザとして、自動操作をします。
ドライバはChromeDriver よりダウンロードをしてください。
その後、****.exeファイルをPythonのパスが通ったフォルダに入れておいてください。
これで準備はばっちり!
Seleniumでヨスケのブログを開く
手始めに、プログラム上に打ち込んだURLのページをGoogle Chromeで開くプログラムです。
# SeleniumのWebDriverをインポート
from selenium import webdriver
import time
# Google Chromeを起動
driver = webdriver.Chrome()
# ヨスケのブログトップページを開く
driver.get('https://retire-early40.com/')
# 15秒で終了
time.sleep(15)
driver.quit()
Seleniumでブログのカテゴリから特定カテゴリをクリック
一気にブラウザの自動操作っぽくなりますね!
ヨスケのブログの中でヘッダのカテゴリに「自己投資」のリンクを見つけて、クリックするプログラムになっています。
from selenium import webdriver
import time
driver = webdriver.Chrome()
# ブログのトップページを開く
driver.get('https://retire-early40.com/')
# 自己投資のリンクを見つける
link = driver.find_element_by_link_text('自己投資')
# 見つけたリンク「自己投資」をクリックする
link.click()
# 15秒後に閉じる
time.sleep(15)
driver.close()
Googleでの検索結果から、自分のブログに飛ぶ
最期にGoogleの検索フォームに検索ワードを打ち込んで検索した結果から、自分のブログを見つけてクリックしてトップページに遷移するプログラムです。
from selenium import webdriver
import time
driver = webdriver.Chrome()
# Googleトップページを開く
driver.get('https://google.com')
# 検索窓を探索する
el = driver.find_element_by_name('q')
# ヨスケのブログ名を入力
el.send_keys('ヨスケの実験報告書')
# 検索フォーム送信
el.submit()
# 1秒待ってみる
time.sleep(1)
# ヨスケのブログのドメイン名が入ったリンクを探す
link = driver.find_element_by_partial_link_text('retire-early40.com')
# リンクをクリックする
link.click()
#10秒待って閉じる
time.sleep(10)
driver.close()
さいごに
今回はSeleniumを使ったWebブラウザ操作プログラムを作成してみました。
Google Chromeの上で自動遷移が進むところを見ていると、プログラミングが上達したな~とか感じるのですが、単にSeleniumライブラリで操作可能な作業が豊富なだけです。
Pythonの学習を進めていてよく感じるのが、「ライブラリは何ができるのか、どう助けてくれるのか?」を理解していると新たなプログラム作成がしやすいということです。
どれだけ上手に道具を使いこなすことができるかで進捗が変わってきますので、みなさんもたくさん写経して、真似て、真似て、真似まくってください。
以上、参考になればうれしいです。
今回のプログラミング学習に際して、書籍を一つ買いました。
サンプルプログラムが豊富で、Pythonでできる自動化処理の写経がたくさんできますので、もしよければ、お手元に1冊置かれてみてはいかがでしょうか。