タウンページを使って、企業の電話番号を自動で取得する方法についてまとめる。
全体のコード
from selenium import webdriver
from time import sleep
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
# 企業名と都道府県名の例
company_name = "マースジャパン株式会社"
area = "東京都"
#
#GoogleChromeを起動
driver = webdriver.Chrome()
driver.implicitly_wait(3) # 3秒待て
# 操作するURLを開く
url = "https://itp.ne.jp/"
driver.get(url)
time.sleep(3)
# キーワード入力フォームへのテキスト入力とテキストの削除 Selenium
# 企業名入力
texts = driver.find_element(By.XPATH, "/html/body/div/div[2]/div/main/div[1]/div/div[2]/form/div/div[1]/input")
texts.send_keys(company_name)
# エリア(都道府県)入力
texts2 = driver.find_element(By.XPATH,"/html/body/div/div[2]/div/main/div[1]/div/div[2]/form/div/div[2]/input")
texts2.send_keys(area)
time.sleep(3)
wait = WebDriverWait(driver, 20) # 最大20秒
elem = wait.until( EC.visibility_of_element_located( (By.CLASS_NAME,"m-keyword-form__button")) )
# "m-keyword-form__button"テキストを含むclassを見つけるまで、待て。
# そして、見つけたら、リンクを取り出して、elemに代入しろ
elem.click() # elemの要素をクリック
検索結果
主要なコード
driver = webdriver.Chrome()
google chromeを開く
driver.get(url)
urlを開く
texts=driver.find_element(By.XPATH, "/html/body/div/div[2]/div/main/div[1]/div/div[2]/form/div/div[1]/input")
今開いているurlにおいて、XPATHを元に要素を見つけて、変数textsに渡す。
texts.send_keys(company_name)
textsはテキスト入力のボックスになっているので、ここにcompany_nameを渡す。
texts2 = driver.find_element(By.XPATH,"/html/body/div/div[2]/div/main/div[1]/div/div[2]/form/div/div[2]/input")
textsと同じ、XPATHを利用して要素を見つける。
texts2.send_keys(area)
都道府県名を表すareaをtexts2の入力欄に渡す。
wait = WebDriverWait(driver, 20) # 最大20秒
条件が揃うのを最大20秒まで待つ。
elem = wait.until( EC.visibility_of_element_located( (By.CLASS_NAME,"m-keyword-form__button")) )
(By.CLASS_NAME,"m-keyword-form__button")
の要素がvisibleになるまで待って、elemに渡す。
elem.click()
elemをクリックする。>>>ブラウザでは検索結果に遷移する。
まとめ
タウンページで企業の電話番号を検索するのに必要なコードを具体例とともにまとめた。
この例では、企業名のリストから電話番号を調べるために、企業名と都道府県名をタウンページに入力する処理をしている。
company_name=””のところをリストから要素を取り出して代入するようにすると、自動で企業の電話番号を表示できる。
次回は電話番号取得のためのBeautifulSoupに関して記述する。