PythonのseleniumでGoogle検索する方法【Google Chrome操作プログラム】

PythonでGoogle検索する方法 プログラミング

最近、自分なりにプログラミング言語Pythonの独学をしております。

僕の大学時代の専攻は情報系ではないので、プログラミングに関してはド素人のようなものです(特定されたくないので何を専攻していたかは書かないでおきます)。

では何故プログラムの勉強を始めたかと言うと、僕は以前、とあるクソみたいなツールを情報科学系の学科卒の友人に高額な値段で売りつけられ、泣きを見た経験があります。

【自動化ツールの闇】ネット収益で10万円貯金達成後、もっと稼ぎたいと思い怪しいツールに手を出してしまった話
2018年に入ったばかりの頃、大学時代の友人だった人から怪しい自動化ツールを紹介され、10万円支払って運用した時の話です。 この頃はYouTubeチャンネルが軌道に乗り始め、貯金も人生初の10万円超えしたばかりでした。 そんな矢先、もっと稼ぎたいという心理に漬けこまれ、色々言いくるめられて怪しい自動化ツールに手を出してしまいました。 皆さんも僕の二の舞にならないよう注意しておいて下さい。

そのため、もうこれからは騙されない為に、自分もある程度プログラミングを習得しておこうと思ったのが勉強するきっかけだったりします。

最初に勉強したブログラミング言語はPythonではなく、UWSCというWindowsを自動操作するためのプログラムでした。

つい最近、UWSCでYouTube検索結果ページから動画タイトルとURLを引っ張ってくるマクロを公開しましたが、せっかくなのでここにも貼っておきます。

UWSCでYouTube動画タイトルとURLを一括取得するマクロ(2019年10月9日プログラム改善)
UWSCはWindowsの作業を効率化するためのツールで、敷居はかなり高いもののマクロを組めるようになれば作業の効率化ができたりします。 僕がYouTubeで動画を上げていた頃に自分でマクロを組んで使用していたので、その時のコードでも紹介しようと思います。

ただ、UWSC自体がかなり古いソフトという事もあり、できれば近年のプログラムに触れたほうがいいなと思って、最近Pythonに手を出したという感じです。

とりあえず練習として、Google ChromeをPythonで自動操作してグーグル検索するマクロを組んでみたので、公開しようと思います。

スポンサーリンク

PythonのseleniumでGoogle検索するための準備

PythonでGoogle Chromeを操作するための前準備について記しておきます。Google Chromeは既にインストールされていること前提で話を進めていきます。

①:Pythonのインストール

まずはPythonをインストールする必要があります。

Pythonは公式サイトからダウンロードすることができます。

色々調べてみると、Python3系を使う事が推奨されているようなので、以下のサイトの説明を読んでPython3を入手してください。

Windows版Pythonのインストール - python.jp
以下の手順で、Pythonのインストールを行います。 Python公式サイトから、Pythonパッケージをダウンロードします ダウンロードしたパッケージをインストールします。 PowerShellでPythonを実行するときに必要となる、ス...

②:seleniumのインストール

Pythonのインストールが完了したら、コマンドプロンプトで以下のコマンドを打ち込み、seleniumをインストールしてください。

pip install selenium

seleniumはpythonでGoogle Chromeを操作するために必要なものになります。

コマンドプロンプトは、Windows10であれば左下のスタートボタンを押し、『cmd』と入力すれば出てきます。

コマンドプロンプトの立ち上げ方1

コマンドプロンプトを起動すると次のようなウィンドウが出てくるので、『pip install selenium』と打ち込み、エンターキーを押してください。これでインストールできるはずです。

コマンドプロンプトでpip install selenium

③:Chrome Driverのインストール

Seleniumを配布しているホームページからChrome Driverをダウンロードしてください。

Sign in - Google Accounts

ダウンロードしたドライバーは以下のフォルダに入れておくと後々便利です。

Python3のフォルダパス

上の画像のフォルダパスは、
C:\Users\ユーザー名\AppData\Local\Programs\Python\Python3X
です(Xの部分はバージョンにより異なります)。

これで準備は全て完了です。

スポンサーリンク

PythonのseleniumでGoogle検索するプログラム

PythonのseleniumでGoogle検索を行うために書いたプログラムを以下に載せてみました。

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

driver.get("https://www.google.co.jp/")

google_kensaku = driver.find_element_by_name("q")
google_kensaku.send_keys("python クローム操作")
google_kensaku.send_keys(Keys.RETURN)
time.sleep(3)

driver.quit()

このプログラムコードをコピーし、メモ帳などのテキストエディタに貼り付けて保存したあと、拡張子を.pyに変更することで使えるようになります。

このプログラムを実行することで以下のような動きをします。

①:Google Chromeが立ち上がり、Google検索画面が表示される。
②:検索窓に「python クローム操作」と打ち込み、検索する。
③:検索結果画面が表示される。
④:3秒待機する。
⑤:Google Chromeを閉じ、プログラムが終了する。

プログラムの解説

まだまだ素人なので正確な説明は出来ないかもしれませんが、そのあたりはご了承ください。

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

Google Chromeを自動操作するプログラムを書くために必要なライブラリをインポートしているとのこと。これらを書いておかないと、後のプログラムコードが一切動きません。

 

driver = webdriver.Chrome()

driver.get("https://www.google.co.jp/")

ダウンロードしたChrome Driverの場所と、Googleを立ち上げた時にアクセスするURLをここで指定しています。

driver = webdriver.Chrome()
でGoogle Chromeを起動し、

driver.get(“https://www.google.co.jp/”)
では、()内に記述したURLにアクセスする処理を行っています。

しかしよく見てみると、
driver = webdriver.Chrome()
の部分の()内には何も書かれていません。

この()内にはChrome Driverが配置されているフォルダのパスを指定するのですが、本記事ではPythonの実行プログラムが配置されているフォルダパス

C:\Users\ユーザー名\AppData\Local\Programs\Python\Python3X

の中にそのままChrome Driverを配置しているため、()内に何も書かなくても実行されるようになります。

わざわざパスを通す必要が無くなるので、この方が便利です。

 

google_kensaku = driver.find_element_by_name("q")

Google検索窓のname要素「q」を探し出して検索窓要素を取得し、変数google_kensakuに格納しています。

name要素は以下のようにして探すことが出来ます。

①:Google検索窓にマウスカーソルを合わせ、右クリックすると、一番下に「検証」と出てくるので押します。

Google Chrome:検証

すると画面右側に、検索窓の部分に対応したHTMLコードがハイライトされます(青い部分になります)。

検索窓のhtml

青い部分を拡大してみると、赤い四角で囲んだ部分にname = “q”と書かれています。

検索窓のhtml拡大

プログラムコードに書いてある.find_element_by_name()のカッコ内に入れる文字列は、このようにして探し出しています。

 

google_kensaku.send_keys("python クローム操作")

検索窓の要素を格納した変数google_kensakuに.send_keys(“文字列”)を後ろに付け加えることで、検索窓に文字を打ち込む動作をさせる事ができます。

打ち込みたいキーワードを変えたい時は、()内のキーワードを変更すればOKです(半角のダブルクォーテーション””で囲むのを忘れないように)。

 

google_kensaku.send_keys(Keys.RETURN)

先程のコードの()内がKeys.RETURNに置き換わっているだけです。このコードを実行することでエンターキーを押した時と同じ動作をさせることができます。

このコードを動かすためには、一番最初の方で、
from selenium.webdriver.common.keys import Keys
と記述しておく必要があります。

この記述が無いまま実行しようとすると『Keys.RETURNが定義されていません』とエラーが出るので注意して下さい。

 

time.sleep(3)

()内の数字の分だけ待機するコードです。単位は秒です。

()内を5に変更すれば5秒待機し、1に変更すれば1秒待機します。

また、このコードを使うためには一番最初の方で、
import time
と記述しておく必要があります。

 

driver.quit()

Google Chromeを閉じて終了するコードです。プログラムの最後でクロームを閉じたい場合は必ず記述しておきます。

まとめ

PythonのseleniumでGoogle検索する方法について、ほぼ素人の視点からなるべく分かりやすく書いてみました。

説明の仕方が合ってるかどうかは正直自信が無いですが、この記事で示した手順通りにすることで、pythonでグーグル検索することができると思います。

最後まで読んでくださってありがとうございました。

コメント