각진 세상에 둥근 춤을 추자
[Python] 가상 브라우저 크롤링 실습 (네이버 로그인) 본문
가상 브라우저 크롤링을 통해 네이버 접속, 아이디-비밀번호 입력, 로그인까지 구현해 본다.
1. 모듈 설치
pip install selenium
pip install webdriver-manager
[ERROR] zsh: command not found: pip → 참고 [Error] - [Python] pip install ~ 에러
위 모듈을 설치 후 또는 이미 설치되어 있다면 본문 맨 윗부분에 import한다.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
1. ChromeDriver 설치
크롬 설정 - 도움말 - Chrome 정보
현재 사용 중인 크롬의 버전을 알아본다 (ex. 버전 108)
https://chromedriver.chromium.org/downloads
크롬 버전에 맞는 크롬 드라이버 클릭
개인 PC에 맞는 버전 선택 다운로드
- 맥 인텔칩 : chromedriver_mac64.zip
- 맥 m1: chromedriver_mac_arm64.zip
- 윈도우: chromedriver_win32.zip
설치 완료 후 압축 파일을 해제한다.
해제한 위 파일을 파이썬 EXPLORER에 드래그한다.
2. 가상 브라우저 실행
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
browser = webdriver.Chrome('./chromedriver', options=chrome_options)
3. 네이버 이동
browser.get('http://naver.com')
3. 로그인 버튼 클릭
네이버 웹 페이지 상 로그인 버튼의 셀렉터를 복사한다.
btnLogin = browser.find_element(By.CSS_SELECTOR, '#account > a') # find_element: 선택자 함수
btnLogin.click()
4. 아이디- 비밀번호 입력
네이버 웹 페이지 상 아이디, 비밀번호의 셀렉터를 복사한다.
아이디와 비밀번호는 편의상 각각 abcd, 1234로 작성한다.
input_id = browser.find_element(By.CSS_SELECTOR, '#id')
input_pw = browser.find_element(By.CSS_SELECTOR, '#pw')
input_id.send_keys('abcd')
input_pw.send_keys('1234')
5. 최종 로그인 버튼 클릭
네이버 웹 페이지 상 로그인 버튼의 셀렉터를 복사한다.
btnSubmit= browser.find_element(By.CSS_SELECTOR, '#log\.login')
btnSubmit.click()
만만하지 않은 네이버
캡차(보안 문자)에 딱 걸렸다.
다음 글을 통해 캡차 우회를 시도해 본다.
'Python' 카테고리의 다른 글
[Python] 네이버 뉴스 크롤링 + 엑셀 저장 (0) | 2023.01.18 |
---|---|
[Python] 크롤링 HTML 페이지 요청하기 (0) | 2023.01.18 |
[Python] 파이썬 데이터베이스(DB) 연동 (0) | 2023.01.18 |
[Python] 파이썬 리스트 함수 (0) | 2023.01.06 |
[Python] 파이썬 날짜시간, 수학, 랜덤함수 (0) | 2023.01.06 |