Python

【2024年2月最新版】pythonでGoogle Chromeのブラウザ操作を自動化する方法

ChatGPTのAPIを使わずに自動化することが可能です。
下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。

まえがき

こんにちは、サルモリです!

これからPythonのSeleniumの使い方について解説していくのでよろしくお願いします。

今回の記事のテーマは下記です。

今日のテーマ

Google Chromeの操作を自動化してみよう。ブラウザを立ち上げて、検索を出来る所まで実装してみよう。

Pythonで早速Webを立ち上げてみよう!!
サルモリ

注意

Visual Studio Codeで行っています。

PythonのLambdaについて徹底的に学びたい方は画像をクリックしてご覧ください!
KindleUnlimited会員であれば、全ての本をご覧頂けます。 リストとラムダ式を理解すれば、Pythonプログラミングの世界が変わる 第1版

Seleniumの準備

step
1
下記のコマンドを入力して、Seleniumをインストールしましょう。

 command
pip install selenium

step
2
下記のURLから最新版のChromeドライバーをダウンロードしましょう。

https://googlechromelabs.github.io/chrome-for-testing/

下記のURLをコピーして、URL欄に貼り付けすれば、ダウンロードすることができます。

私はWindowsの64ビットのドライバーをダウンロードします。

step
3
「chromedriver.exe」がダウンロードされるので、任意のフォルダに置いてください。サルモリはCドライブのdriverフォルダに置きます。

サルモリ
以上で準備完了だよ!!

ブラウザの表示の仕方

下記のコードを記述してみてください。

上記のコードを実行すると、Googleが立ち上がります。Navigate().GoToUrlの引数には指定したURLを記述します。

サルモリ
googleが立ち上がったね!!

注意

「@"D:\"」は、Dドライブの直下に「chromedriver.exe」を置いた場合です。

googleでの検索方法

続けて、下記のコードを実行してみよう。

googleの検索のテキストエリアの属性は下記のようになっています。

上記のコードを入力すると自動的にテキストボックスに入力し、画面が遷移したと思います。

サルモリ
yahooを検索できたね!

 

属性の取得方法を学ぼう

上記のように属性の取得方法を学びましょう!!

サルモリ
取得方法を学べば、ほとんどのウェブサイトの自動化ができるよ。

step
1
まず、google画面を開きます。

 

step
2
F12キーをおしてください。右側に下記のウィンドウが表示されます。

step
3
開いたウィンドウの左上側にあるクリックしている図を押しましょう。

step
4
検索テキストボックスにカーソルを合わせてクリックしてみてください。右にコードが表示されます。

 

step
5
薄っすらと灰色で塗られたhtmlのソースコードが対象のテキストボックスです。

サルモリ
ソースコードと見比べてみよう!

htmlとソースコードの見比べ

html

ソースコード

見比べてみると、classがどちらとも「gLFyf」となっていることが分かりますね!!

以上の手順で対象のテキストボックスを調べることができます。

対象のテキストボックスを指定した後に、SendKeysメソッドの引数に入力したい文字列を指定してあげましょう!

サルモリ
検索ボタンも同じように調べてみよう!

検索ボタンをクリックしました。

前回の記事のソースコードと見比べてみると。

htmlとソースコードの見比べ

html

ソースコード

こちらも見比べてみると、classがどちらとも「gNO89b」となっていることが分かります!!

ボタンの押下には、Clickメソッドを使用します!

クラスだけでなく、valueも指定できます。

サルモリ
今回の例では、valueは「Google 検索」だね!!

nameなどでもできるので、色々試してみてください。

データの取得には下記の記事もオススメです!

自動化に便利なメソッド

下記の使い方を学んでみよう。

【2024年2月追記】最新版のSeleniumでは、FindElementByIdなどのメソッドは廃止されました。

メソッド一覧

  • find_element(By.ID, "element_id")
  • find_element(By.CLASS_NAME, "class_name")
  • find_element(By.NAME, "name_attribute_value")
  • close()
  • back()
  • forward()
サルモリ
早速使い方をみていくよ!

find_element(By.CLASS_NAME, "class_name")

まずは、FindElementByClassNameを使っていきましょう。

サルモリ
XPATHより全然簡単だよ。

googleの右上のGmailをクリックしてみます。まず、タグ名を調べます。クラス名を確認しましょう。

gmailの属性

下記のコードを入力してみましょう。画面が遷移するはずです。

find_element(By.ID, "element_id")

FindElementByIdを続けて使ってみましょう。遷移した画面のテキストボックスを調べます。

 

idを指定しましょう。下記のソースコードを記述してみます。

KappaChanと記述されましたね。

google画面の検索ボックスを調べてみます。

下記のソースコードを記述してみます。

「sarumori」と記述されましたね。

自動化の関連記事はこちら

Close

Closeメソッドでは、開いたブラウザを閉じることができます。

Back

Backメソッドはブラウザを戻ることができます。ブラウザの左上にある戻るボタンと同じ挙動ですね。

Forword

Forwardメソッドはブラウザを進ませるができます。ブラウザの左上にある進むボタンと同じ挙動ですね。

まとめ

これでSeleniumの基本的な使い方は終わりです。結構簡単に実装できるので、ぜひ覚えてくださいね!

次の記事ではhtmlの属性の探し方などを記事にしたいと思います。

取り上げたメソッドを存分に使ってみます。

クラス名などが変わっていましたね^^;下記のソースコードを修正しました。

サルモリ
今までのコードを存分につかってみよう!

画面がたくさん遷移して、自動化されていることが実感できると思います。

注意

driver.Manage().Window.Maximize()は画面を最大化するコードです。画面を最大化しないと、タグが見つからずにOpenQA.Selenium.ElementNotInteractableExceptionというエラーが発生します。この辺のエラー対策についても後程記事にしていきたいと思います。

今回取り上げたメソッドを使っていけば、基本的にやりたいことは出来ると思います。

最後まで見て頂き、ありがとうございました。

サルモリ
今回の記事は終了だよ!

-Python

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock