inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[신규 개정판] 이것이 진짜 크롤링이다 - 기본편

브라우저가 꺼집니다..

해결된 질문

1067

안효기

작성한 질문수 5

0

선생님 유익한 강의 정말 잘 듣고 있습니다..!

셀레니움 가이드 강의에서 브라우저 꺼짐 방지 코드도 알려주셨는데 똑같이 따라해도 코드가 전부 실행되고 로그인이 완료되면 브라우저가 자동으로 꺼지는데 왜 그럴까요..?

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By

#크롬 드라이버 자동 업데이트
from webdriver_manager.chrome import ChromeDriverManager

import time
import pyautogui
import pyperclip

#브라우저 꺼짐 방지
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)

#불필요한 에러 메시지 없애기
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"])

service = Service(excutable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=chrome_options)

#웹페이지 주소로 이동
driver.implicitly_wait(5) #웹페이지가 로딩될 때까지 5초는 기다림
driver.maximize_window() #화면 최대화
driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/")

#아이디 입력창
id = driver.find_element(By.CSS_SELECTOR, "#id")
id.click()
pyperclip.copy("a06015")
pyautogui.hotkey("ctrl", "v")
time.sleep(2)
# id.send_keys("a06015")

#비밀번호 입력창
pw = driver.find_element(By.CSS_SELECTOR, "#pw")
pw.click()
pyperclip.copy("")
pyautogui.hotkey("ctrl", "v")
time.sleep(2)
# pw.send_keys("")

#로그인 버튼
login_btn = driver.find_element(By.CSS_SELECTOR, "#log\.login")
login_btn.click()

python 웹-크롤링 브라우저꺼짐

답변 1

0

인프런 AI 인턴

안녕하세요 안효기 님, 인프런 AI 인턴이에요.

코드를 확인해보니, chrome_options.add_experimental_option("detach", True) 코드를 사용하여 브라우저 꺼짐 방지 설정을 적용하고 있으셨군요. 하지만 이 코드는 브라우저가 종료되더라도 세션을 유지하여 다시 접속할 수 있도록 도와주는 기능입니다.

로그인이 완료되면 브라우저가 자동으로 종료되는 이유는 로그인 성공 시나리오 이후에 브라우저를 종료하는 코드가 없어서 발생하는 것 같습니다. 브라우저를 종료하지 않고 유지하려면, 코드의 끝에 driver.quit()을 추가해주시면 됩니다. 이렇게 되면 강의가 끝난 후에도 브라우저가 종료되지 않고 유지됩니다.

아래는 수정된 코드 예시입니다.

# ... 이전 코드 생략 ...

#로그인 버튼
login_btn = driver.find_element(By.CSS_SELECTOR, "#log\.login")
login_btn.click()

# 브라우저 종료 방지 - 입력 대기
input("로그인 성공 후 프로그램을 종료하려면 엔터 키를 눌러주세요.")

# 브라우저 종료
driver.quit()

수정된 코드로 실행해보시면 로그인 이후 브라우저가 자동으로 종료되지 않고 유지될 것입니다. 참고하시고 잘 활용해보세요. 감사합니다!

0

안효기

감사합니다! 해결 되었습니다!

Live server 를 이용 해보고 싶은데 확장메뉴 설치가 막혀 있어요

0

63

2

'팀 단위 AI 업무 혁신' 자문 관련하여 문의드리고자 합니다. (연락처 요청)

0

39

1

import requests from bs4 import BeatifulSoup 이 단계에서 안 되네요

0

76

2

requests 관련 질문

1

137

2

설치 관련

0

132

2

vs code 결과출력이 안됩니다

0

143

1

크롤링 관련 질문입니다

0

210

2

word wrap 체크 후에도 콘솔 한줄로 출력되는현상

0

190

1

주피터에서 pip오류가 계속납니다

0

1084

3

강의 "requests, Beautifulsoup4 사용법 빠르게 알아보기"에서 질문이있습니다.

0

171

2

네이버쇼핑 검색창 넘어가기전 팝업창이 안사라져요

0

366

1

html주소를 다른 컴터에서도 접속하기

0

243

2

pandas 설치하는데 오류가 나서요

0

2709

1

실행오류

0

215

1

네이버쇼핑 무한스크롤 안되시는분들 모바일네이버로 실습해보세요

0

263

1

뉴스 페이지에 페이지 번호가 없는데 어떻게 가져오나요?

0

233

2

네이버 쇼핑에 팝업창이 뜨기 시작했어요 도와주세요 ㅠㅠ

0

724

3

셀레니움 실습 시 창이 자동 차단되면서 꺼집니다.

0

664

2

낮은 가격순을 클릭하는 문을 추가하고싶습니다.

0

305

2

pip는 내부 또는 외부명령 ,실행할 수 있는 프로그램

0

3392

2

이런오류는 어떤 오류인가요

0

661

1

창이 두개떠요/쇼핑검색도 안되요 ㅜ

0

334

2

약간 변태(?)같지만 해당 코드를 깔끔하게 함수로 리팩토링해보았습니다

0

338

2

과제 답안을 보지않고 스스로 구글링해서 만든 웹 크롤링 프로그램(10페이지 단위) 코드입니다.

0

760

2