생각이 담아두는 곳

2. 개발의 시작. 본문

CS_Project/WebCrawler_Venture

2. 개발의 시작.

Chang_Tree 2020. 3. 23. 02:04

셀레니움을 이용해 개발하기 시작했다. 

 

첫 코드는 아래와 같다. 

 

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 에 원하는 회사를 검색하고, 그 페이지를 불러오게끔 한 것. 

 

 

Comments