웹 스크래핑은 일반적으로 웹사이트의 비구조화된 데이터에서 스크래핑을 통해
구조화된 데이터로 추출하는 것을 의미한다.
Selenium은 웹 테스트 자동화 도구로, 파이썬 라이브러리로써 사용하고
브라우저를 직접 제어할 수 있어서 스크래핑에 용이하다.
또한 다양한 브라우저(Chrome, Firefor등) 를 지원한다.
파이썬 프로그램이 멈춰도 브라우저 자체는 닫히지 않는다.
with 표현식 -> 에러시 자동종료
기본적인 파이썬 크롤링 방법
from selenium import webdriver
# 지시사항 1번을 작성하세요.
with webdriver.Firefox() as driver:
# 지시사항 2번을 작성하세요.
driver.get("http://localhost:8080")
ol = driver.find_element_by_tag_name("ol")
li_list = ol.find_elements_by_tag_name("li")
for li in li_list:
print(li.text)
big_class = driver.find_elements_by_class_name("big")
for big in big_class:
print(big.text)
ul_list = driver.find_elements_by_tag_name("ul")
for ul in ul_list:
bold = ul.find_element_by_class_name("bold")
print(bold.text)
XPATH란
XML 문서의 특정 노드에 접근하기 위한 질의어.
*는 경로에 있는 모든 노드,
[]는 필터 표현식, //p[1] dms ahems p요소 중 첫번째 요소를 의미한다.
//는 자손노드 검색, /는 자식노드 검색
from selenium import webdriver
# 지시사항 1번을 작성하세요.
with webdriver.Firefox() as driver:
driver.get("http://localhost:8080")
# 지시사항 2번을 작성하세요.
xpath = '/html/body/ol/li'
print(xpath)
li_list = driver.find_elements_by_xpath(xpath)
for li in li_list:
print(li.text)
# 지시사항 4번을 작성하세요.
xpath2 = '//*[contains(@class, "big")]'
print(xpath2)
# 지시사항 5번을 작성하세요.
big_list = driver.find_elements_by_xpath(xpath2)
for big in big_list:
print(big.text)
# 지시사항 6번을 작성하세요.
xpath3 = '//ul//*[contains(@class, "bold")]'
print(xpath3)
# 지시사항 7번을 작성하세요.
bold_list = driver.find_elements_by_xpath(xpath3)
for bold in bold_list:
print(bold.text)
다음 포스팅에는
로그인, 드롭다운 등 숨겨져 있는 data의 경우 크롤링 하는 방법들에 대해 알아보자.
'AI Study' 카테고리의 다른 글
인공지능 머신러닝, 어떻게 시작할까? (1) | 2025.03.22 |
---|---|
머신러닝과 데이터 과학에 대한 이해 (0) | 2025.03.22 |
빅데이터와 AI: 데이터가 AI 발전에 중요한 이유 (2) | 2025.03.19 |
Python, Pandas, NumPy 문법 비교 및 데이터 분석 필수 문법 정리 (0) | 2025.03.19 |
Selenium을 통한 브라우저 제어(2) (0) | 2025.03.09 |