-
[python / 셀레니움] 데이터 크롤링 코드 공유 ( 공공벤치 데이터 )python 데이터 분석 2024. 3. 16. 19:01
코드
### 첫 페이지 크롤링 from selenium.webdriver.common.keys import Keys import pandas as pd from selenium.webdriver import ActionChains from selenium.common.exceptions import NoSuchWindowException from selenium.webdriver.support.ui import WebDriverWait url = "https://www.google.com/maps/d/viewer?mid=10VltzAd9Sy6kz4kXI6gTlxXDNH5qU84&ll=37.616648340000026%2C127.00119020000002&z=12" result = urlopen(url) # path = "/Users/kimsh/Downloads/chromedriver_mac64/chromedriver.exe" # file 위치는 지정해줘야 한다. # 원래는 path 지정해줘야 하는데, 셀레니움이 업데이트가 되어서 크롬 드라이버 다운 안받아도 됨. driver = webdriver.Chrome() driver.get(url) time.sleep(2) # 최초에 한번만 열어야 함. driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[2]/div/div/div[2]/div/div/div[2]/div/div/div[3]/div[2]/div/div').click() for i in range(1, 1983): # for i in range(1, 3): # 열기 time.sleep(0.5) # 해당하는 벤치 id click driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[2]/div/div/div[2]/div/div/div[2]/div/div/div[3]/div[3]/div[2]/div['+ str(i) + ']').click() # 에러 처리 time.sleep(0.5) li = [] # 위경도 크롤링 lat = driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[4]/div/div/div[4]/div[1]/div[2]/div[2]') li.append(lat.text) lng = driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[4]/div/div/div[4]/div[1]/div[3]/div[2]') li.append(lng.text) # 추가 df.append(li) time.sleep(0.5) # 뒤로 가기 driver.find_element_by_xpath('/html/body/div[1]/div[3]/div[4]/div/div/div[3]/div[1]/div/span/span/span').click()
크롤링 예제 대상
공용벤치 공익 데이터 - Google 내 지도
누구나 쉬어갈 수 있는 공공벤치
www.google.com
아마 상업적으로 사용하려고 하면 문제가 생길 수 있으니 조심하시길!!
질문 있으면 댓글 남겨주세요
'python 데이터 분석' 카테고리의 다른 글
[sklearn / python / pandas] 선형, 이차, 삼차, 로그 모델 RMSE, R2 비교 (0) 2024.04.08 [python / pandas] 데이터 분석 기초 - DataFrame 생성, csv 파일 불러오기 (0) 2024.03.20 [python / scikitlearn] 다중회귀분석 예제 코드 및 설명 (0) 2024.03.19 [python / 회귀] scikit-learn 설치 및 다중회귀분석 방법 예제 (0) 2024.03.18 [python / selenium (셀레니움)] 설치 방법 (0) 2024.03.16