- 수업 내용 리마인드 및 아카이빙 목적의 업로드
Selenium은 웹 브라우저를 자동으로 제어할 수 있는 강력한 도구로, 특히 동적 웹 페이지에서 데이터를 추출할 때 매우 유용합니다.
1. Selenium 시작하기
Selenium을 시작하기 위해 먼저 라이브러리를 설치해야 합니다. Python 환경에서 pip install selenium 명령어를 사용하여 설치할 수 있습니다. 설치 후에는 Selenium WebDriver를 사용하여 브라우저를 제어할 수 있습니다.
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.naver.com')
driver.quit()
이 간단한 코드로 브라우저를 열고, 네이버 페이지에 접속한 후 브라우저를 닫을 수 있습니다.
2. Selenium WebDriver 활용
Selenium WebDriver는 다양한 웹 요소를 제어할 수 있도록 도와줍니다. 웹 페이지의 특정 요소를 선택하고, 해당 요소와 상호작용할 수 있습니다. 예를 들어, 특정 CSS 셀렉터를 사용해 요소를 선택하고, 그 안의 텍스트를 가져올 수 있습니다.
from selenium.webdriver.common.by import By
driver.find_element(By.CSS_SELECTOR, 'css_selector').text
여기서 find_element 메서드는 첫 번째 일치하는 요소를 반환하고, find_elements는 모든 일치하는 요소를 리스트로 반환합니다.
3. Wait & Sleep
웹 페이지가 로드되기 전에 요소를 찾으려고 하면 오류가 발생할 수 있습니다. 이를 방지하기 위해 Selenium은 암시적 대기(implicitly_wait)와 명시적 대기(time.sleep) 기능을 제공합니다. 이를 통해 웹 페이지가 완전히 로드될 때까지 기다릴 수 있습니다.
driver.implicitly_wait(10)
4. 클릭 및 키보드 입력
Selenium은 웹 요소를 클릭하거나 텍스트를 입력하는 기능도 제공합니다. 예를 들어, 특정 버튼을 클릭하거나 입력 필드에 텍스트를 입력할 수 있습니다.
element.click()
element.send_keys('입력할 텍스트')
5. 스크롤 내리기
동적 웹 페이지에서 무한 스크롤을 처리해야 할 때가 많습니다. Selenium은 자바스크립트 코드를 실행하여 페이지를 스크롤할 수 있습니다.
driver.execute_script('window.scrollTo(0, document.body.scrollHeight);')
6. HTML 소스 가져오기
페이지의 전체 HTML 소스를 가져와 BeautifulSoup과 같은 HTML 파서로 분석할 수 있습니다.
page_source = driver.page_source
'+ 개발' 카테고리의 다른 글
혼합 방식(동기+비동기) 웹 크롤링(#뉴스기사)_Gen.AI (0) | 2024.08.17 |
---|---|
Scrapy를 이용한 웹 크롤링 (0) | 2024.08.16 |
비동기 웹 크롤링(#무신사)_Gen.AI (0) | 2024.08.13 |
API 요청 찾는 방법 (0) | 2024.08.13 |
동기 웹과 비동기 웹의 차이(ft.데이터 크롤링) (0) | 2024.08.13 |