강의
"XPath"는 XML, HTML 문서 등의 요소의 위치를 경로로 표현하는 것입니다.
%pip install selenium
%pip install webdriver-manager
# 스크래핑에 필요한 라이브러리를 불러와봅시다.
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
# 예시 사이트에 요청을 진행하고, 예시 사이트의 첫 번째 이벤트의 제목을 가져와봅시다.
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get("https://indistreet.com/live?sortOption=startDate%3AASC")
driver.find_element(By.XPath, '[@id="__next"]/div/main/div[2]/div/div[4]/div[1]/div[1]/div/a/div[2]/p[1]').text
기다림(Wait)
- 명시적 기다림(Explicit Wait) : 지정한 시간 동안 기다림
# Explicit Wait를 활용해서 스크래핑이 잘 이루어지도록 코드를 작성해봅시다.
from selenium.webdriver.support import expected_conditions as EC
with webdriver.Chrome(service=Service(ChromeDriverManager().install())) as driver:
driver.get("https://indistreet.com/live?sortOption=startDate%3AASC")
element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "target")))
print(element)
- 암묵적 기다림(Implicit Wait) : 특정 요소에 대한 제약을 통한 기다림
# 10초동안 Implicit Wait을 진행하도록 해서 스크래핑이 잘 이루어지도록 수정해봅시다.
from selenium.webdriver.support.ui import WebDriverWait
with webdriver.Chrome(service=Service(ChromeDriverManager().install())) as driver:
driver.get("https://indistreet.com/live?sortOption=startDate%3AASC")
driver.implicitly_wait(10)
print(driver.find_element(By.XPath, '[@id="__next"]/div/main/div[2]/div/div[4]/div[1]/div[1]/div/a/div[2]/p[1]').text)
여러 공연 제목 가져오기
# 여러 공연의 제목을 스크래핑하는 코드를 작성해봅시다.
from selenium.webdriver.support.ui import WebDriverWait
with webdriver.Chrome(service=Service(ChromeDriverManager().install())) as driver:
driver.get("https://indistreet.com/live?sortOption=startDate%3AASC")
driver.implicitly_wait(10)
for i in range(1,11):
element = driver.find_element(By.XPath, "//*[@id="__next"]/div/main/div[2]/div/div[4]/div[1]/div[1]/div[{}]/a/div[2]/p[1]".format(i))
print(element)
'데브코스 TIL > Web Scrapping' 카테고리의 다른 글
Web Scraing 기초 3-8. 키보드 이벤트 처리하기 (0) | 2023.10.26 |
---|---|
Web Scraping 기초 3-4. 마우스 이벤트 처리하기 (0) | 2023.10.26 |
Web Scraping 기초 3-2. 브라우저 자동화하기, Selenium (0) | 2023.10.26 |
Web Scraping 기초 3-1. 동적 웹 페이지와의 만남 (0) | 2023.10.25 |
Web Scraping 기초 2-5. 원하는 요소 가져오기 || (0) | 2023.10.25 |