Pythonでseleniumを使ってExcelのリストから
GOOGLE上でTELを取得したいです。
GOOGLEで店舗名を検索すると右側に表示される電話:〇〇〇〇を取得したいです。
現在EXCEL
A | B |
---|---|
吉野家 四ッ谷駅前店 | |
松屋 青物横丁店 | |
サイゼリヤ 五反田西口店 |
実現したい結果 EXCEL
A | B |
---|---|
吉野家 四ッ谷駅前店 | 03-5363-2205 |
松屋 青物横丁店 | 03-5796-2131 |
サイゼリヤ 五反田西口店 | 03-5759-6522 |
下記の方法でTEL取得できましたが、毎回店舗によってTELのXPATHが変わるので、
どのように取得すれば良いでしょうか。
例①
吉野家 四ッ谷駅前店のxpath
//*[@id="kp-wp-tab-overview"]/div[1]/div/div/div/div/div[10]/div/div/div/span[2]/span/a/span
例②
サイゼリヤ 五反田西口店のxpath
//*[@id="kp-wp-tab-overview"]/div[1]/div/div/div/div/div[12]/div/div/div/span[2]/span/a/span
div[12],div[11]などxpath変化する場合、どのようにXPATH指定しますか。
code
# Excel用ライブラリ読込 import openpyxl import time from selenium.webdriver.common.keys import Keys # Excelファイルを開く v_wb=openpyxl.load_workbook("TEL.xlsx") # アクティブなシートを変数へ v_ws = v_wb.active # 2行目から、最大行+1まで繰り返す---------------------------------------------------------- for i in range(2,v_ws.max_row+1): # A列(店舗)を変数へ v_Excelfrom = v_ws['a'+str(i)].value # ブラウザ用ライブラリ読込 from selenium import webdriver # Chrome用ドライバー読込 v_browser = webdriver.Chrome("C:\Program Files\chromedriver_win32\chromedriver.exe") # GOOGLEサイトを開く v_browser.get('http://www.google.com') # 検索バーを入力 v_sfrom = v_browser.find_element_by_xpath('/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div[2]/div[2]/input') # Excelの店舗を入力 v_sfrom.send_keys(v_Excelfrom) #検索 time.sleep(2) v_sfrom.send_keys(Keys.ENTER) # 電話番号を取得 v_fare = v_browser.find_element_by_xpath('//*[@id="kp-wp-tab-overview"]/div[1]/div/div/div/div/div/div/div/div/span[2]/span/a/span') print(v_fare) # ExcelへTEL書き込み v_ws['b'+str(i)].value = int(v_fare) # ブラウザを閉じる v_browser.close() # ここまでを繰り返し -------------------------------------------------------------------- # Excelファイルを保存 v_wb.save("TEL.xlsx")
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。