見出し画像

Seleniumで近くのコンビニの情報を取得してみたのコード

Youtubeで使用したコードをここに残しておきます。

動画は以下になります。

特に説明することもないので何か気になったことがあればコメントにてお願いします。

コード

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome('chromedriver')
keyword = "コンビニ"
map_url = "https://www.google.co.jp/maps/search/"+keyword+"/"

driver.get(map_url)

css_ele ='.section-layout.section-scrollbox.cYB2Ge-oHo7ed.cYB2Ge-ti6hGc.siAUzd-neVct-Q3DXx-BvBYQ'
serch_element = driver.find_elements_by_css_selector('.section-layout.section-scrollbox.cYB2Ge-oHo7ed.cYB2Ge-ti6hGc.siAUzd-neVct-Q3DXx-BvBYQ.siAUzd-neVct-YbohUe-bnBfGc > div ')
if len(serch_element)==0:
   serch_element = driver.find_elements_by_css_selector(css_ele +'>'+css_ele+'> div ')
print(len(serch_element))

kisu_element = serch_element[0::2]

href_list = []
for a in kisu_element:
   ele = a.find_element_by_css_selector('div > a')
   href_list.append(ele.get_attribute('href'))
print(len(href_list))

driver.get(href_list[0])
driver.find_element_by_css_selector('.x3AX1-LfntMc-header-title-title.gm2-headline-5').text
page_ele = driver.find_elements_by_css_selector('.QSFF4-text.gm2-body-2')
title = page_ele[0].text
phone_num = page_ele[2].text
print(title,phone_num)

for link in href_list:
   sleep(1)
   driver.get(link)
   sleep(10)
   page_ele = driver.find_elements_by_css_selector('.QSFF4-text.gm2-body-2')
   title = page_ele[0].text
   i=0
   while i<30 :
       phone_num = page_ele[2].text
       print(phone_num)
       try :
           if phone_num[0]!='0':
              phone_num = page_ele[3].text 
           if phone_num=="":
               sleep(1)
               i+=1
               continue
           else:
               break
       except:
           sleep(1)
           +=1
           continue    
   print(title,phone_num)


いただいたサポートは全額勉強のために使わせていただきます。 という綺麗事もありなんですけど、ただただモチベーションの維持に使わせていただこうかなと考えています。 という遊び心も置いといて、有難いことに記事を買っていただけているのでサポートしたいという気持ちだけでも有難いです。