반응형
컨테이너 기반 Selenium 크롤링하는 방법
전체 구조
[ MacOS ]
|
| docker run
v
[ Selenium Container ]
├─ Linux
├─ Firefox / Chrome
├─ WebDriver
└─ Selenium Server (4444)
↑
|
[ Python 크롤러 ]
(Remote WebDriver로 접속)
Selenium 컨테이너 실행
공식 Selenium 이미지 사용
docker run -d \
--name selenium-firefox \
-p 4444:4444 \
selenium/standalone-firefox
실행 확인
docker ps
Selenium 서버 동작 확인
브라우저에서 아래 주소 접속
http://localhost:4444
- Selenium Grid UI 화면이 나오면 정상 동작
컨테이너 종료
docker rm -f selenium-firefox
Python 크롤러 컨테이너 구성
디렉토리 구조
selenium-crawler/
├─ Dockerfile
└─ crawl.py
Dockerfile 작성
vim Dockerfile
FROM python:3.13-slim
WORKDIR /app
RUN pip install selenium
COPY crawl.py .
CMD ["python", "crawl.py"]
crawl.py 작성 (Selenium 4 기준)
vim crawl.py
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.options import Options
options = Options()
options.add_argument("--headless")
driver = webdriver.Remote(
command_executor="http://selenium:4444/wd/hub",
options=options
)
driver.get("http://scbyun.com")
print("Title:", driver.title)
links = driver.find_elements(By.TAG_NAME, "a")
for link in links:
print(link.text, link.get_attribute("href"))
driver.quit()
728x90
Docker Network로 컨테이너 연결
네트워크 생성
- 같은 네트워크에 있어야 서로 이름으로 접근 가능
docker network create selenium-net
Selenium 컨테이너 실행
docker run -d \
--name selenium-firefox \
--network selenium-net \
-p 4444:4444 \
selenium/standalone-firefox
Python 크롤러 이미지 빌드
docker build -t crawler .
실행
docker run --rm \
--network selenium-net \
crawler
Title: 변군이글루 블로그(Byeon-gun's Igloo Blog)
본문 바로가기 https://www.scbyun.com/#content
변군이글루 블로그(Byeon-gun's Igloo Blog) https://www.scbyun.com/
리눅스 https://www.scbyun.com/category/%EB%A6%AC%EB%88%85%EC%8A%A4
클라우드 https://www.scbyun.com/category/%ED%8D%BC%EB%B8%94%EB%A6%AD%20%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C
네임서버 https://www.scbyun.com/category/%EB%84%A4%EC%9E%84%EC%84%9C%EB%B2%84
스크립트 https://www.scbyun.com/category/%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8
원도우 https://www.scbyun.com/category/%EC%9B%90%EB%8F%84%EC%9A%B0
링크 https://www.scbyun.com/category/%EB%A7%81%ED%81%AC
MyPage https://scbyun.com/1346
KrCERT https://www.krcert.or.kr/main.do
관리자 https://www.scbyun.com/manage
Vault OTP 계정과 로컬 계정을 함께 사용하는 SSH 인증 구성하는 방법
Vault OTP 계정과 로컬 계정을 함께 사용하는 SSH 인증 구성하는 방법HashiCorp Vault 기반 OTP 계정 접속과 기존 로컬 Unix 계정 접속을 동시에 지원하기 위한 PAM 기반 SSH 인증 구성 방법입니다.인증 동작 방식Vault OTP 계정 로그인 (예: vault_user1)vault_user1 + OTP └─ pam_exec(vault-ssh-helper) → 성공 └─ sufficient → 로그인 허용로컬 계정 로그인 (예: local_user1)local_user1 + local password └─ pam_exec(vault-ssh-helper) → 실패 (OTP 아님) └─ sufficient 무시 └─ common-auth (pam_unix..
더보기 https://www.scbyun.com/711097
docker-compose로 Selenium 크롤링 한 번에 실행하기
docker-compose.yml 작성
vim docker-compose.yml
services:
selenium:
image: selenium/standalone-firefox
container_name: selenium-firefox
ports:
- "4444:4444"
shm_size: "2gb"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:4444"]
interval: 5s
timeout: 3s
retries: 10
crawler:
build: .
container_name: selenium-crawler
depends_on:
selenium:
condition: service_healthy
실행 후 자동 종료시키기
docker compose up --build --abort-on-container-exit
selenium-crawler | Title: 변군이글루 블로그(Byeon-gun's Igloo Blog)
selenium-crawler | 본문 바로가기 https://www.scbyun.com/#content
selenium-crawler | 변군이글루 블로그(Byeon-gun's Igloo Blog) https://www.scbyun.com/
selenium-crawler | 리눅스 https://www.scbyun.com/category/%EB%A6%AC%EB%88%85%EC%8A%A4
selenium-crawler | 클라우드 https://www.scbyun.com/category/%ED%8D%BC%EB%B8%94%EB%A6%AD%20%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C
selenium-crawler | 네임서버 https://www.scbyun.com/category/%EB%84%A4%EC%9E%84%EC%84%9C%EB%B2%84
selenium-crawler | 스크립트 https://www.scbyun.com/category/%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8
selenium-crawler | 원도우 https://www.scbyun.com/category/%EC%9B%90%EB%8F%84%EC%9A%B0
selenium-crawler | 링크 https://www.scbyun.com/category/%EB%A7%81%ED%81%AC
selenium-crawler | MyPage https://scbyun.com/1346
selenium-crawler | KrCERT https://www.krcert.or.kr/main.do
selenium-crawler | 관리자 https://www.scbyun.com/manage
selenium-crawler | Vault OTP 계정과 로컬 계정을 함께 사용하는 SSH 인증 구성하는 방법
selenium-crawler | Vault OTP 계정과 로컬 계정을 함께 사용하는 SSH 인증 구성하는 방법HashiCorp Vault 기반 OTP 계정 접속과 기존 로컬 Unix 계정 접속을 동시에 지원하기 위한 PAM 기반 SSH 인증 구성 방법입니다.인증 동작 방식Vault OTP 계정 로그인 (예: vault_user1)vault_user1 + OTP └─ pam_exec(vault-ssh-helper) → 성공 └─ sufficient → 로그인 허용로컬 계정 로그인 (예: local_user1)local_user1 + local password └─ pam_exec(vault-ssh-helper) → 실패 (OTP 아님) └─ sufficient 무시 └─ common-auth (pam_unix..
selenium-crawler | 더보기 https://www.scbyun.com/711097
- 크롤러 끝나면 Selenium도 같이 내려감
728x90
반응형
'스크립트' 카테고리의 다른 글
| 파이썬 스크립트를 작성하고 실행하는 방법 (0) | 2025.06.26 |
|---|---|
| 파이션 파일 입출력 (0) | 2025.06.26 |
| 파이션 예외 처리 (0) | 2025.06.26 |
| 파이션 시스템 상호 작용 및 관리 (0) | 2025.06.26 |
| 파이션 텍스트 처리 (0) | 2025.06.26 |