안녕하세요 오늘은 네이버 길찾기사이트로 들어가 자동으로 입력하고 자동으로 길찾기 버튼을 눌르면서 몇시간 걸리는 지에 대해 알아보겠습니다. 

 

1. webdrive와 selenium을 설치하셔야 됩니다.

 

네이버 길찾기 페이지를 들어갑니다.

https://map.naver.com/v5/directions/-/-/-/?c=14139078.9231079,4509745.6215210,15,0,0,0,dh

 

CTRL + ALT + I 을 눌러 페이지의 소스를 봐야됩니다.

그런다음 차례대로 1번을 실행합니다. 3번째의 XPATH를 복사해서 메모장 OR 파이썬에 저장합니다. XPATH는 다음과 같습니다. 

//*[@id="intro_popup_close"]/span

 

그리고 이제 출발지 안에 값을 입력해야 됩니다. 

출발지 값은 다음과 같습니다.

id값 : directionStart

이제 잠실역이라는 값을 받았으면

잠실역 2호선을 클릭해야 합니다. 만약 클릭을 안 하게되면 빈값이 들어가게 됩니다.

xpath의 값은 다음과 같습니다.

 

//*[@id="container"]/div[1]/shrinkable-layout/directions-layout/directions-result/directions-search-list/search-list/search-list-contents/perfect-scrollbar/div/div[1]/div/div/div/search-item-place/div 

 

이제 잠실역 2호선, 신사역2호선을 입력 받았습니다. 받게 되면 이제 '길찾기'라는 버튼을 클릭해야 됩니다.

 

다음과 같습니다.

btn btn direction.active

하지만, 위의 있는 값을 소스코드에서 값을 넣을 때 띄어쓰기를 하면 안됩니다.

밑에 보시면 충분히 이해하실거라 믿습니다.

 

전체 소스코드를 보여드리겠습니다. 

 

from selenium import webdriver
from selenium.webdriver.common.keys import Keys


driver = webdriver.Chrome('chromedriver')
driver.get('https://map.naver.com/v5/directions/-/-/-/?c=14139078.9231079,4509745.6215210,15,0,0,0,dh')
#네이버 길찾기 주소

driver.find_element_by_xpath('//*[@id="intro_popup_close"]/span').click()

delay = 3
driver.implicitly_wait(delay) # 3초 기달림 


driver.find_element_by_id('directionStart').send_keys('잠실역')
driver.find_element_by_id("directionStart").send_keys(Keys.RETURN) # 엔터 

driver.find_element_by_xpath('//*[@id="container"]/div[1]/shrinkable-layout/directions-layout/directions-result/directions-search-list/search-list/search-list-contents/perfect-scrollbar/div/div[1]/div/div/div/search-item-place/div').click()


driver.find_element_by_id('directionGoal').send_keys('신사역')
driver.find_element_by_id('directionGoal').send_keys(Keys.RETURN)

try :
    #driver.find_element_by_xpath('//*[@id="container"]/div[1]/shrinkable-layout/directions-layout/directions-result/div/directions-search/div[2]/button[2]').click()
    driver.find_element_by_class_name('btn.btn_direction.active').click()
except:
    print('1')


 

 

만약 안 될 시에는 다음과 같은 소스코드로 해보시길 바랍니다.

 

from selenium import webdriver
from selenium.webdriver.common.keys import Keys


driver = webdriver.Chrome('chromedriver')
driver.get('https://map.naver.com/v5/directions/-/-/-/?c=14139078.9231079,4509745.6215210,15,0,0,0,dh')
#네이버 길찾기 주소

driver.find_element_by_xpath('//*[@id="intro_popup_close"]/span').click()

delay = 3
driver.implicitly_wait(delay) # 3초 기달림 


driver.find_element_by_id('directionStart').send_keys('잠실역')
driver.find_element_by_id("directionStart").send_keys(Keys.RETURN) # 엔터 
try :
    driver.find_element_by_xpath('//*[@id="container"]/div[1]/shrinkable-layout/directions-layout/directions-result/directions-search-list/search-list/search-list-contents/perfect-scrollbar/div/div[1]/div/div/div/search-item-place/div').click()

except :
    driver.find_element_by_id('directionGoal').send_keys('신사역')
    driver.find_element_by_id('directionGoal').send_keys(Keys.RETURN)

try :
 	driver.find_element_by_class_name('btn.btn_direction.active').click()
except:
    print('1')

 

try 문과 except만 넣었습니다.

음, 뭐가 문제인지는 추후에 넣어보겠습니다. 댓글로 말씀해주시면 감사합니다.

 

결과는 다음과 같습니다.

 

 

이상 포스터를 마치겠습니다. 

+ Recent posts