最近、自分なりにプログラミング言語Pythonの独学をしております。
僕の大学時代の専攻は情報系ではないので、プログラミングに関してはド素人のようなものです(特定されたくないので何を専攻していたかは書かないでおきます)。
では何故プログラムの勉強を始めたかと言うと、僕は以前、とあるクソみたいなツールを情報科学系の学科卒の友人に高額な値段で売りつけられ、泣きを見た経験があります。
そのため、もうこれからは騙されない為に、自分もある程度プログラミングを習得しておこうと思ったのが勉強するきっかけだったりします。
最初に勉強したブログラミング言語はPythonではなく、UWSCというWindowsを自動操作するためのプログラムでした。
つい最近、UWSCでYouTube検索結果ページから動画タイトルとURLを引っ張ってくるマクロを公開しましたが、せっかくなのでここにも貼っておきます。
ただ、UWSC自体がかなり古いソフトという事もあり、できれば近年のプログラムに触れたほうがいいなと思って、最近Pythonに手を出したという感じです。
とりあえず練習として、Google ChromeをPythonで自動操作してグーグル検索するマクロを組んでみたので、公開しようと思います。
PythonのseleniumでGoogle検索するための準備
PythonでGoogle Chromeを操作するための前準備について記しておきます。Google Chromeは既にインストールされていること前提で話を進めていきます。
①:Pythonのインストール
まずはPythonをインストールする必要があります。
Pythonは公式サイトからダウンロードすることができます。
色々調べてみると、Python3系を使う事が推奨されているようなので、以下のサイトの説明を読んでPython3を入手してください。
②:seleniumのインストール
Pythonのインストールが完了したら、コマンドプロンプトで以下のコマンドを打ち込み、seleniumをインストールしてください。
pip install selenium
seleniumはpythonでGoogle Chromeを操作するために必要なものになります。
コマンドプロンプトは、Windows10であれば左下のスタートボタンを押し、『cmd』と入力すれば出てきます。
コマンドプロンプトを起動すると次のようなウィンドウが出てくるので、『pip install selenium』と打ち込み、エンターキーを押してください。これでインストールできるはずです。
③:Chrome Driverのインストール
Seleniumを配布しているホームページからChrome Driverをダウンロードしてください。
ダウンロードしたドライバーは以下のフォルダに入れておくと後々便利です。
上の画像のフォルダパスは、
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検索窓にマウスカーソルを合わせ、右クリックすると、一番下に「検証」と出てくるので押します。
すると画面右側に、検索窓の部分に対応したHTMLコードがハイライトされます(青い部分になります)。
青い部分を拡大してみると、赤い四角で囲んだ部分にname = “q”と書かれています。
プログラムコードに書いてある.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でグーグル検索することができると思います。
最後まで読んでくださってありがとうございました。
コメント