티스토리 뷰
[실전] 파이썬 (Python)
[selenium 중급] Selenium을 이용한 웹 자동화 (자동로그인, 자동 게시글/댓글 작성 등)
으나니머스 2025. 2. 13. 10:00반응형
🚀 Selenium을 이용한 웹 자동화 프로젝트 예제
Selenium을 활용하면 단순한 웹 크롤링뿐만 아니라, **웹 자동화(Web Automation)**까지 가능해집니다.
예를 들어, 로그인 자동화, 자동 게시물 작성, 자동 폼 입력 및 제출 등의 작업을 수행할 수 있습니다.
✅ 1. Selenium 웹 자동화의 핵심 기능
기능 설명
브라우저 자동 실행 | Chrome, Firefox 등 제어 |
로그인 자동화 | send_keys()를 활용한 폼 입력 |
버튼 클릭 | click() 메서드 사용 |
자동 스크롤 | execute_script() 사용 |
파일 업로드 | send_keys("파일경로") 활용 |
데이터 저장 | CSV, Excel, JSON 형식으로 저장 |
✅ 2. 프로젝트 1: 자동 로그인 (네이버 예제)
네이버에 자동으로 로그인하고, 마이페이지로 이동하는 Selenium 자동화 예제입니다.
📌 사용 기술:
- Selenium을 사용하여 자동 로그인
- send_keys()로 아이디 및 비밀번호 입력
- click()으로 로그인 버튼 클릭
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
# 1️⃣ Chrome 드라이버 실행
driver = webdriver.Chrome()
# 2️⃣ 네이버 로그인 페이지 이동
driver.get("https://nid.naver.com/nidlogin.login")
time.sleep(2) # 페이지 로딩 대기
# 3️⃣ 아이디, 비밀번호 입력
driver.find_element(By.ID, "id").send_keys("your_username") # 네이버 아이디 입력
driver.find_element(By.ID, "pw").send_keys("your_password") # 비밀번호 입력
# 4️⃣ 로그인 버튼 클릭
driver.find_element(By.ID, "log.login").click()
# 5️⃣ 마이페이지로 이동
time.sleep(3) # 로그인 처리 시간 대기
driver.get("https://my.naver.com")
print("로그인 성공!")
driver.quit()
🔹 설명
- send_keys("입력값") : 입력창에 텍스트 입력
- click() : 버튼 클릭
- time.sleep(3) : 페이지 로딩을 고려하여 대기 (네트워크 속도에 따라 조정)
🟢 Tip:
- 자동 로그인 시, 2단계 인증이 활성화된 계정은 Selenium만으로 로그인 불가능.
- 로그인 정보를 보안 저장하려면 .env 파일 또는 config.json을 사용하는 것이 좋음.
✅ 3. 프로젝트 2: 자동 게시글 작성 (구글 폼)
이 프로젝트에서는 구글 폼에 자동으로 응답을 입력하고 제출하는 자동화를 구현합니다.
📌 사용 기술:
- send_keys()로 텍스트 입력
- click()으로 버튼 조작
🎯 자동 입력할 구글 폼 예제 링크
👉 구글 폼 예제
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# 1️⃣ 브라우저 실행
driver = webdriver.Chrome()
driver.get("https://docs.google.com/forms/d/e/1FAIpQLScM6uM1hK5O7qQ3iLWTc9GQJ_fA/viewform")
time.sleep(2) # 페이지 로딩 대기
# 2️⃣ 첫 번째 질문 입력 (예제: 이름 입력)
name_input = driver.find_element(By.XPATH, "//input[@type='text']")
name_input.send_keys("홍길동")
# 3️⃣ 두 번째 질문 입력 (예제: 이메일)
email_input = driver.find_element(By.XPATH, "//input[@type='email']")
email_input.send_keys("test@example.com")
# 4️⃣ 제출 버튼 클릭
submit_button = driver.find_element(By.XPATH, "//span[text()='제출']")
submit_button.click()
print("자동 입력 및 제출 완료!")
driver.quit()
🔹 설명
- find_element(By.XPATH, "//input[@type='text']") : 텍스트 입력 필드 찾기
- send_keys("홍길동") : 입력 필드에 자동 입력
- click() : 제출 버튼 클릭
🟢 Tip:
- XPATH를 활용하면 버튼이나 입력 필드를 더 정확하게 선택 가능.
- 특정 버튼이나 요소가 로딩되기 전에 조작하면 오류가 발생할 수 있으므로, time.sleep()을 적절히 사용해야 함.
✅ 4. 프로젝트 3: 자동 댓글 작성 (인스타그램)
인스타그램 게시물에 자동으로 댓글을 작성하는 Selenium 자동화 예제입니다.
📌 사용 기술:
- send_keys()로 댓글 입력
- click()으로 댓글 게시
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# 1️⃣ 인스타그램 로그인
driver = webdriver.Chrome()
driver.get("https://www.instagram.com/accounts/login/")
time.sleep(3) # 페이지 로딩 대기
# 2️⃣ 로그인 정보 입력
driver.find_element(By.NAME, "username").send_keys("your_username")
driver.find_element(By.NAME, "password").send_keys("your_password")
driver.find_element(By.XPATH, "//button[@type='submit']").click()
time.sleep(5) # 로그인 대기
# 3️⃣ 특정 게시물 이동
post_url = "https://www.instagram.com/p/POST_ID/"
driver.get(post_url)
time.sleep(3) # 페이지 로딩 대기
# 4️⃣ 댓글 입력 및 게시
comment_box = driver.find_element(By.XPATH, "//textarea")
comment_box.send_keys("멋진 사진이네요! 😊")
submit_button = driver.find_element(By.XPATH, "//button[@type='submit']")
submit_button.click()
print("댓글 작성 완료!")
driver.quit()
🔹 설명
- send_keys("댓글 내용") : 댓글 자동 입력
- click() : 댓글 게시 버튼 클릭
🟢 Tip:
- 인스타그램은 자동화 탐지 시스템이 있으므로, 너무 빠르게 반복하면 계정이 차단될 수 있음.
- time.sleep(3~5) 같은 대기 시간을 랜덤하게 설정하는 것이 중요.
✅ 5. 웹 자동화 심화 기법
🔹 (1) 파일 업로드 자동화
파일 업로드 버튼이 <input type="file">인 경우, send_keys()를 이용하여 자동으로 파일을 업로드할 수 있습니다.
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://example.com/upload")
# 파일 업로드 버튼 찾기
file_input = driver.find_element(By.NAME, "file")
file_input.send_keys("C:\\Users\\User\\Documents\\test.jpg") # 파일 경로 입력
print("파일 업로드 완료!")
driver.quit()
🔹 (2) 스크롤 자동화 (무한 스크롤)
SNS 사이트(예: 트위터, 인스타그램)에서 스크롤을 자동으로 내리면서 데이터 크롤링할 때 유용합니다.
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://example.com")
# 5번 스크롤 내리기
for i in range(5):
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(2) # 로딩 대기
print("스크롤 완료!")
driver.quit()
✅ 6. 정리
프로젝트 기능
자동 로그인 | 네이버 로그인 후 마이페이지 이동 |
자동 폼 작성 | 구글 폼 자동 입력 및 제출 |
자동 댓글 작성 | 인스타그램 댓글 자동 입력 |
파일 업로드 | send_keys("파일 경로") 활용 |
스크롤 자동화 | execute_script() 활용 |
Selenium을 활용하면 로그인 자동화, 매크로, 데이터 입력 자동화 등을 쉽게 구현할 수 있습니다.
반응형
'[실전] 파이썬 (Python)' 카테고리의 다른 글
[selenium 고급] Selenium과 OpenCV을 활용한 이미지 CAPTCHA 자동 입력 방법 (0) | 2025.02.13 |
---|---|
[selenium 고급] Selenium과 AI OCR을 활용한 CAPTCHA 자동 입력 방법 (0) | 2025.02.13 |
pygame으로 만든 게임 apk파일로 빌드 및 출시하기 (0) | 2025.02.01 |
[챗지피티+pygame] 지피티를 이용해 리듬게임 만들기 (0) | 2025.02.01 |
[pygame] 악마의 트리 피하기 게임 만들기 (1) | 2024.12.22 |