Pythonでweb操作するための超基本!環境設定から画面起動
「Pythonで自動化をしたいけど、何から始めたらいいかわからない」
「自動化するにはまずどんなことをすればいいの?」
この記事では、Pythonの自動化で最も基本である環境設定、よく使うモジュールの紹介、webの起動までを行います。
私は、Pythonを用いて業務効率化を行っていますので、その経験から最初の基本のところから解説をしていきます。
目次(クリックで読みたい部分にジャンプできます)
Pythonはどのようにweb画面を操作
Web画面は、HTML(Hypertext Markup Language)という言語で記述されています。このHTML言語は、W3C(World Web Consortium)という標準化団体により規格(文字の入力欄、ボタン等の各要素のHTML言語での記述方法)が定義されています。
そしてChrome, Edge, Safari, Firefoxなどの各ブラウザはHTML言語で記述された内容をブラウザが読み取り画像化し、web画面として表示しています。
皆さんが、Pythonを用いてweb画面を操作するには、このHTML言語で書かれた内容を読み取り、Pythonのプログラムの中に指定することが必要です。そのため、web操作をするためには、HTML言語に関する知識が必要です。
今回は、初心者の方にもわかりやすいように、業務で使用する頻度の高い要素についてHTML言語とPythonでの操作方法を対比しながら解説します。
環境設定
webの操作には、Seleniumというライブラリを使用します。
Seleniumは、Web画面の動作テストのために開発されたライブラリです。PythonでWeb画面の操作をするためには、HTMLの各要素(ボタン、入力等)に対応した記述が必要です。
また、ブラウザを操作するためには、ブラウザごとのWebDriverが必要となります。WebDriverはPythonで記述したSeleniumライブラリのコードの内容に従い、ブラウザを操作します。このように、Web画面を操作するには、SeleniumとWebDriverの両方が必要です。
Pythonのコードで記述する部分には、Seleniumによるブラウザ操作の部分とブラウザを操作するWebDriverの設定に関する部分の両方があります。
Seleniumのインストール
まず、seleniumのインストールをします。
windowsの方は検索窓から「cmd」と検索、macの方はLaunchpadから「コマンドライン」を起動してください。
そしてら、以下を入力してエンターを押します。
py -m pip install Selenium
Pythonのインストール
Pythonのインストールがまだの方は以下記事を参考にインストールを行ってください。
WebDriverの準備
Seleniumは各ブラウザの画面上で操作しますので、ブラウザごとのドライバーを入手します。今回は、Chromeを用います。
まず使用しているChromeのバージョンを確認します。Chromeを開き、右上の「3ぽち」をクリックします。その後、「ヘルプ」「GoogleChromeについて」をクリックします。すると以下画面が表示されます。
ここで、バージョンを確認します。私のバージョンは114となっています。
次のChrome用のWebDriverを以下から入手します。
ChromeDriverダウンロードサイト
自分のバージョンを選び、遷移します。114だと以下画面になります。
リンク先のページから、Windows用のファイルをダウンロードし、解答します。chromedriver.exeというファイルとなります。
こちらで、ダウンロードは終了です。
Chromeは頻繁にバージョンアップする
Chromeは頻繁にバージョンアップします。今後、WebDriverの更新作業は必要となります。
Web画面の操作において、要素の認識がうまくいかず、苦労することがあります。WebDriverの更新が頻繁にあるということは、要素の認識性の向上にも貢献しているものと思われます。
Pythonで自動化をしていく場合、このようなバージョンアップ対応も行っていく必要があることを認識しておきましょう。
Web画面操作の基本~よく使うモジュール~
実際のweb画面では、複雑な要素の場合、いくつかの方法を試して、その中の一つの方法しか操作できないことがあります。
このような実務での活用を考慮し、複数の方法によるアプローチも解説していきます。
from selenium import webdriver
各ブラウザのWebDriverを操作するためのモジュールです。
from selenium.webdriver.common.by import By
Seleniumでweb画面の要素を指定するための識別子を用いるためのライブラリです。
from selenium.webdriver.common.keys import Keys
Seleniumでキーボードを入力するためのライブラリです。
from selenium.webdriver.support.select import Select
プルダウンメニューの選択のためのライブラリです。他のライブラリよりも、できたのが新しいライブラリです。参考文献によっては、このライブラリのできる前にプルダウンメニュの操作方法を解説しているものがあります。このライブラリがあることで簡単に操作することができるよになりました。
from selenium.webdriver.common.alert import Alert
モーダルウィンドウ(確認ダイアログBOXともいいます)を操作するためのライブラリです。
【実践】ブラウザの起動
では、実際にブラウザの起動までを行ってみましょう。ブラウザの起動ができると、さまざまなweb画面に遷移することが可能になり、自動化をしやすくなります。
#googleで検索し、キーワードの上位検索結果を取得する
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
#ここのURLを変更すれば、好きなwebページにアクセスできるようになります。
url = "https://www.google.com"
driver = webdriver.Chrome()
driver.get(url)#起動
time.sleep(3)
driver.quit()#ブラウザを終了
ここまで、できた方は、以下の活用事例も参考にしてみてください。
活用事例
まとめ
今回は、Pythonでweb操作をするための基本事項をまとめました。まずは、実際に自分の手で動かしてみるのが一番かと思います。
是非試してみてください!