2. 개발의 시작.
셀레니움을 이용해 개발하기 시작했다.
첫 코드는 아래와 같다.
from selenium import webdriver
driver = webdriver.Chrome("/Users/growing/Projects/WC/chromedriver")
driver.get("https://thevc.kr/")
venture_search = driver.find_element_by_class_name("total_search")
venture_search.clear()
venture_search.send_keys("왓")
driver.implicitly_wait(10)
driver.find_element_by_xpath('/html/body/header/div[2]/div/div[1]/div[2]/ul/li[1]/a/img[1]').click()
driver.implicitly_wait(20)
driver.quit()
우선 가상환경을 설정해, 셀레니움을 설치하고 webdriver 라는 모듈을 가져왔다.
driver.get("주소")를 이용해, 그 주소에 자동으로 접속
우리가 접근하려는 사이트는 https://thevc.kr/
더브이씨 (THE VC) - 한국 스타트업 투자 데이터베이스
한국 스타트업의 투자 소식을 확인하고 스타트업, 액셀러레이터, 벤처캐피탈을 찾아보세요. 한국 스타트업 투자 생태계를 파악하는 가장 빠른 방법 - THE VC
thevc.kr
문제는 저 괴랄한 사이트가 네이버나 구글과는 다르게, "검색" 버튼이 없다는 것에 있다.
사실 내가 초짜라 헷갈려서 괜히 엄한 사이트에 화를 냈다.
검색 이후에, 저 회사 검색 사이트로 이동을 하려면 엔터키를 눌러도 안되고 저 "회사등록" 버튼을 클릭해서도 안되고(저거는 다른 창으로 넘어간다.), 저 검색창에서 click이라는 함수를 콜해도 안된다.
먼저 저 검색창은 class 를 total_reasearch 라고 가지고 있으니, 그걸 통해 검색창을 찾고
send_keys 함수를 통해 원하는 검색어를 입력한 뒤
저 주르륵 내려오는 창을 클릭해야한다.
저 내려오는 창의 경로를 알려고 하던대로 개발자도구에서
요 버튼을 클릭해서 알아보려 했는데, 이유는 모르겠지만 저 버튼을 클릭하면 검색창이 사라져서 여기서 한 번 더 막혔었다 .
결국 도움을 얻어, 저것의 단축키가 Command + Shift + C 라는 것을 알게 되어서, 단축키를 이용해서 xpath를 복사했다. (윈도우에서는 command 키 대신 control)
그래서 접근하니 아뿔싸
exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/header/div[2]/div/div[1]/div[2]/ul/li/a"}
(Session info: chrome=80.0.3987.132)
이런 에러가 발생했다. 검색해서 찾아보니, 웹페이지가 로드 되기 전 클릭을 해서 생기는 오류란다.
implicitly.wait() 이라는 함수를 통해, 지연을 걸어주고(time.sleep() 과 유사) 접속을 하니 잘된다.
오늘 한 것. Selenium 을 이용해, Chrome webdriver 로 thevc.kr 에 원하는 회사를 검색하고, 그 페이지를 불러오게끔 한 것.