본문 바로가기

Selenium 기초 본문

BF 2024/웹 데이터 수집

Selenium 기초

jaegomhoji 2022. 3. 3. 17:41

** 동적 크롤링을 연습해보자 

 

* 우선 유투브로 이동해보자 

 

* 현재 브라우저의 창 크기 구해보기 , driver.get_window_size() 

> 현재 셀레늄과 크롬 드라이버로 구동중인 브라우저의 창 크기에 따라서 값이 바뀐다. 

 

* 이외에도 

 

* 스크롤 가능한 높이 가져오기 

> 자바 스크립트 코드 실행(driver.execute_script) + return document.body.scrollHeight ,

그러나 연습 케이스로 지정한 유투브에서는 0 ( 최상단 으로만 뜸 ) 

> 원래는 현재 페이지에서 가능한 스크롤 높이만큼 이동해야 하나, 현재 작동하지 않기 때문에 임의의 값 3,000으로 시행 

> 페이지가 3000만큼 밑으로 이동됨. 

> 이동은 window.scrollTo(0,0)

> 그리고 좌표 0,0 으로 이동하면 최상단으로 다시 이동됨 

 

* 스크린샷 찍기 , driver.save_screenshot("path/name.png") 로 저장한다 

* 특정 태그 지점까지 스크롤 이동하기.

> 개발자 모드로 원하는 지점의 xpath 를 복사, 이후 해당 경로로 이동 

action = ActionChains(driver) 현재의 크롬 드라이버 변수명으로 액션을 시행할 것이다  

action.move_to_element(scroll_point).perform() 그 액션은 페이지 요소로 이동을 하는 것 ( 만큼 ). 

> 굳이 xpath 말고 css_selector 로 가도 되는데 그냥 xpath 복사하는게 빠르긴 하다 

 

* 페이지 요소에 텍스트 입력하기, tag.send_keys("input") 

> 유투브에서는 잘 못찾겠어서... 실행을 못하고 있다. 하지만 검색창 클릭 까지는 성공 

* 검색창 클리어, tag.clear() 

 

* 페이지 요소 클릭하기, tag.click()

* 브라우저 창 크기 조절 

driver.set_window_size(가로,세로)

최대화, driver.maximize_window()

최소화, driver.minimize_window()

 

* 브라우저에서 앞 , 뒤로 이동하기 

driver.foward()

driver.back()

 

* 현재 화면의 html 페이지 소스 

driver.page_source() 

 

이후에는 bs - html.parser로 파싱 

Comments