Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- openCV
- 가상환경
- 백준
- type hint
- 파이썬
- Selenium
- 알고리즘 스터디
- pandas
- 프로그래머스
- dataframe
- 알고리즘스터디
- 자료구조
- 선그래프
- 알고리즘
- programmers
- Algorithm
- NumPy
- aws jupyter notebook
- Stack
- Matplotlib
- MySQL
- python
- String Method
- javascript
- 정보처리기사 c언어
- 노마드코딩
- 데이터시각화
- 코딩테스트
- Join
- queue
Archives
- Today
- Total
조금씩 꾸준히 완성을 향해
[Python] selenium 네이버 로그인 / 자동입력 방지 우회 본문
selenium을 사용해서 네이버 로그인을 해보자.
from selenium import webdriver
import time
# webdriver 경로 지정
driver = webdriver.Chrome("./chromedriver.exe")
time.sleep(3) #시간 지연 3초 주기
#1. 네이버 이동
driver.get("http://naver.com")
#2. 로그인 페이지로 이동
elem = driver.find_element_by_class_name("link_login")
elem.click()
time.sleep(3)
일단 네이버로 이동해서 로그인 페이지까지 갔다.
아이디, 비밀번호를 입력하려는데 문제가 하나 생겨버린다.
driver.find_element_by_id('id').send_keys("naver_id")
driver.find_element_by_id('pw').send_keys("naver_pw")
이 코드로는 로그인이 막혀버린다는 것이다.
요렇게 자동입력 방지가 뜬다. 사람과 컴퓨터를 구별하기 위한 ‘자동 계정 생성 방지 기술'인 캡챠(captcha)가 작동되고 있기 때문이다. 이 captcha를 우회하기 위한 하나의 방법으로 JavaScript를 사용할 수 있다.
#3. id, pw 입력 (captcha 우회)
input_js = ' \
document.getElementById("id").value = "{id}"; \
document.getElementById("pw").value = "{pw}"; \
'.format(id = "naver_id", pw = "naver_pw")
driver.execute_script(input_js)
time.sleep(3)
#4. 로그인 버튼 클릭
driver.find_element_by_id("log.login").click()
time.sleep(3)
이렇게 execute_script로 js 코드를 실행시켜 주면, 정상적으로 로그인이 시도된다.
자동입력 방지가 뜨지 않고 이렇게 아이디, 비번이 틀렸다는 문구가 뜨는 걸 확인할 수 있다.
'Python > Web Scraping' 카테고리의 다른 글
[selenium] Implicit Waits(암묵적대기) vs Explicit Waits(명시적대기) (0) | 2022.09.14 |
---|---|
[Python] selenium click 에러 (ElementClickInterceptedException) (0) | 2022.09.14 |
[Python] BeautifulSoup 기본 사용법 정리 (0) | 2022.09.14 |
[Python] 파이썬 크롤링 / requests, User-Agent 기본 셋팅 (0) | 2022.09.13 |