멋쟁이사자처럼 13기/TIL 챌린지

멋쟁이사자처럼 후기 + 일은 간편해지고 수익은 성장하는 자동화 스킬 : 파이썬부터 Chat GPT 까지

개발자 지망생 리네 2025. 5. 14. 23:58

📆 DAY37

4. 까다로운 사이트에서의 웹 크롤링
(1) Daum 사이트 이메일 수집

<크롤링을 위해 거쳐야 될 단계 with requests + bs4>

1. 서버에게 HTML 코드 받아오기

- requests.get()

2. HTML 코드 예쁘게 정리하기

- BeautifulSoup()

3. 내가 원하는 요소 가져오게 하기

- soup.select_one()

- soup.select()

 

<크롤링을 위해 거쳐야 될 단계 with selenium>

1. 내가 원하는 요소 가져오게 하기

- broswer.find_element() : 요소 하나

- broswer.find_elements() : 요소 여러 개

 

- 요소 검사 단축키>

윈도우 : Ctrl + Shift + C

맥 : Cmd + Shift + C

from selenium import webdriver
import time
from selenium.webdriver.common.by import By

options = webdriver.ChromeOptions()
options.add_experimental_option("detach", True)
browser = webdriver.Chrome(options=options)
browser.get("https://accounts.kakao.com/login/?continue=https%3A%2F%2Flogins.daum.net%2Faccounts%2Fksso.do%3Frescue%3Dtrue%26url%3Dhttps%253A%252F%252Fwww.daum.net#login")

# 로그인하기
id = browser.find_element(By.CSS_SELECTOR, "input#loginId--1.tf_g")
id.send_keys("카카오 아이디 (이메일)")
pw = browser.find_element(By.CSS_SELECTOR, "input#password--2.tf_g")
pw.send_keys("카카오 비밀번호")
button = browser.find_element(By.CSS_SELECTOR, "button.btn_g.highlight.submit")
button.click()
time.sleep(2) # 로그인이 다 될 때까지 기다리기
# 이메일함으로 이동
browser.get("https://mail.daum.net/top/INBOX")
time.sleep(2) # 페이지가 다 뜰 때까지 기다리기

 

 

더 알고 싶은 점

- Selenium과 bs4의 차이점

-> bs4는 페이지 소스를, selenium은 html 정보를 가져옴

-> 동적 임무를 수행할 수 있는지 여부의 차이점

https://chunws13.tistory.com/3

 

[python] Selenium & Bs4 웹 스크래핑

토이 프로젝트에 사용될 DB 적재를 위해 네이버에서 연재중인 웹툰의 이미지, 제목, 설명이 필요해서 처음에는 Bs4 패키지를 이용해서 웹툰 리스트 정보 스크래핑을 시도했다. import requests from bs4

chunws13.tistory.com

 

 

느낀 점

사실 아직 코드를 완성하지 못하기도 했고, 보안 정책으로 내가 원하는 데이터를 가져오지 못할 수도 있겠다는 생각을 하고 있다. 아직 나의 터미널에는 붉은 에러가 가득하다. 먼저 로그인을 해도 다시 로그인이 바로 풀려버리는 것을 보니, 이건 시스템 보안이 나를 막고 있는 것 같았다. 이 문제를 해결하기 위해 얼마나 많은 시간을 써야할 지 잘 모르겠지만, 그래도 로그인이 필수적인 사이트에서 웹 크롤링을 실습해보는 귀중한 경험을 할 수 있어서 다행이었다. 이 에러를 해결하고 다음 강의를 진행해야할 것 같아 지금 강의를 절반 지점에서 잠시 멈추지만, 최대한 빨리 해결하여 진도를 나가고 싶다.