각진 세상에 둥근 춤을 추자
[Python] 가상 브라우저 크롤링 실습 (네이버 로그인) 본문
가상 브라우저 크롤링을 통해 네이버 접속, 아이디-비밀번호 입력, 로그인까지 구현해 본다.
pip install selenium
pip install webdriver-manager
[ERROR] zsh: command not found: pip → 참고 [Error] - [Python] pip install ~ 에러
[Python] pip install ~ 에러
pip install ~ 입력 시 에러 (예) pip install onenpyxl, pip install requests, pip install bs4 ... zsh: command not found: pip ModuleNotFoundError: No module named 'pymysql' (1번 방법) pip3 install --upgrade pip (2번 방법) pip3 install (설치 프
this-circle-jeong.tistory.com
위 모듈을 설치 후 또는 이미 설치되어 있다면 본문 맨 윗부분에 import한다.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
크롬 설정 - 도움말 - Chrome 정보
현재 사용 중인 크롬의 버전을 알아본다 (ex. 버전 108)
https://chromedriver.chromium.org/downloads
ChromeDriver - WebDriver for Chrome - Downloads
Current Releases If you are using Chrome version 110, please download ChromeDriver 110.0.5481.30 If you are using Chrome version 109, please download ChromeDriver 109.0.5414.74 If you are using Chrome version 108, please download ChromeDriver 108.0.5359.71
chromedriver.chromium.org
크롬 버전에 맞는 크롬 드라이버 클릭
개인 PC에 맞는 버전 선택 다운로드
- 맥 인텔칩 : chromedriver_mac64.zip
- 맥 m1: chromedriver_mac_arm64.zip
- 윈도우: chromedriver_win32.zip
설치 완료 후 압축 파일을 해제한다.
해제한 위 파일을 파이썬 EXPLORER에 드래그한다.
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
browser = webdriver.Chrome('./chromedriver', options=chrome_options)
browser.get('http://naver.com')
네이버 웹 페이지 상 로그인 버튼의 셀렉터를 복사한다.
btnLogin = browser.find_element(By.CSS_SELECTOR, '#account > a') # find_element: 선택자 함수
btnLogin.click()
네이버 웹 페이지 상 아이디, 비밀번호의 셀렉터를 복사한다.
아이디와 비밀번호는 편의상 각각 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')
네이버 웹 페이지 상 로그인 버튼의 셀렉터를 복사한다.
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 |