■実装するプログラムの概要
pythonのseleniumを使用して「え〜のう」の「サイト内検索」に検索ワードを自動で入力し、検索結果を表示する。
▼実装イメージ
文字を入力する。
検索結果を表示する。
■フローチャート
■プログラムの仕様
インプット | 処理内容 | アウトプット |
---|---|---|
検索ワード | 検索ワードを入力し、変数にセットする。 | – |
– | Chromeを起動する。 | – |
– | サイトへアクセスする。 | – |
– | サイト内検索ボックスのnameをセットする。 | – |
– | 入力した検索ワードをサイト内検索に出力する。 | 検索ワード |
– | 検索を実行する。 | – |
■サイト内検索のnameを調べる
サイト内検索のテキストボックスに、値を入力する場合に使用する「find_element_by_name」「find_element(By.NAME, “<nameの値>”)」では、HTMLにおける、<input type=”text”> のnameを使用する必要がある。
対象のソースがわからない場合は、「F12」を押下し、検証モードにすると、どこのソースか特定することができる。
name=”s”であるため、ここでは”s”を使用する。
seleniumのバージョン4以降は、「find_element_by_name」から「find_element(By.NAME, “<nameの値>”)」に変更となったので更新
■サンプルコード
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
# 検索ワードを入力する
keyword = input("検索ワードを入力してください:")
# Windows用:chromedriverのパスを指定
# chrome = webdriver.Chrome("ここにパスを記載する")
# mac用
chrome = webdriver.Chrome()
# Chromeでサイトへアクセス
chrome.get('https://anotools.com')
# サイト内検索ボックスのnameをセット
# search_box = chrome.find_element_by_name("s")
# seleniumのバージョン4以降の場合、取得方法が変更となったので更新
search_box = chrome.find_element(By.NAME, "s")
# 入力した検索ワードをサイト内検索に出力
search_box.send_keys(keyword)
# 検索実行
search_box.send_keys(Keys.RETURN)
・補足事項1
Chromeを起動するには、Chromeドライバが必要となる。
・補足事項2
WindowsとmacでChromeの起動方法が異なる。
Windowsの場合、Chromeドライバ(exeファイル)を指定する必要がある。
■実行結果
ターミナル上で「python」を入力
自動でChromeが起動し検索処理を実行
検索結果ページへ遷移する。
コメント