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
반응형
'공부기록 > 파이썬' 카테고리의 다른 글
Python 기반 웹 프레임워크 Flask와 Django 비교 (0) | 2023.07.02 |
---|---|
Selenium + MongoDB 크롤링한 데이터 저장하기 (0) | 2023.07.01 |
Python + Selenium 특정 요소가 로드된 후 원하는 데이터 가지고 오기(선택자 종류 소개) (1) | 2023.06.30 |
Python + Selenium으로 크롤링 시작하기(예제 있음) (0) | 2023.06.29 |
Scrapy 프록시 설정 및 오류 해결 방법 Crawled (404) <GET https://domain/robots.txt> (referer: None) (0) | 2023.06.28 |