본문 바로가기
공부기록/파이썬

Python + Selenium 도메인 여러 개 크롤링하기

by 책읽는 개발자 ami 2023. 6. 30.
728x90
반응형

 
도메인 여러 개를 리스트에 넣어두고 여러 사이트를 순차적으로 크롤링할 수 있는 방법에 대해 설명해보도록 하겠습니다.

url에 따라 선택자를 다르게 설정하여 코드를 작성할 수 있습니다. 아래 코드를 참조해주세요.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import re

driver = webdriver.Chrome()
urls = ['https://example.com/a', 'https://example.com/b']

for url in urls:
    driver.get(url)
    # 페이지 크롤링 로직을 구현합니다.
    if re.search('a', url):
        class_name = "a_class"  # 기다릴 클래스 이름
        css_selector = '.css'
        title_selector = '.title'
        reg_selector = '.dt'
    elif re.search('b', url):
        class_name = "b_class"
        css_selector = '.css2'
        title_selector = '.title2'
        reg_selector = '.dt2'
    wrap = wait.until(EC.presence_of_element_located((By.CLASS_NAME, class_name)))
    sth_list = wrap.find_elements(By.TAG_NAME,'li')
    for itm in sth_list:
        ele = {}
        ele['css'] = itm.find_element(By.CSS_SELECTOR, css_selector).text
        ele['title'] = itm.find_element(By.CSS_SELECTOR, title_selector).text
        ele['reg_date'] = itm.find_element(By.CSS_SELECTOR, reg_selector).text
        ele_list.append(ele)
        print(ele)
        
# 웹 드라이버 종료
driver.quit()


re는 Python의 내장 모듈 중 하나로, 정규 표현식(regular expression)을 사용하여 문자열을 처리하는 기능을 제공합니다. re 모듈은 문자열의 검색, 대체, 분할 등 다양한 작업에 사용될 수 있습니다.
 
셀레니움 다른 글 살펴 보기(아래)
2023.06.29 - [공부기록/파이썬] - Python + Selenium으로 크롤링 시작하기(예제 있음)
2023.06.30 - [공부기록/파이썬] - Python + Selenium 특정 요소가 로드된 후 원하는 데이터 가지고 오기(선택자 종류 소개)

728x90
반응형