タウンページから電話番号を自動的に取得する その1

serch result townpage

タウンページを使って、企業の電話番号を自動で取得する方法についてまとめる。

全体のコード

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の要素をクリック

検索結果

serch result townpage

主要なコード

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に関して記述する。

 

 



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です