inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

셀레니움4로 실습을 해보았는데 불필요한 코드가 포함되어있을까요??

486

꾸해

작성한 질문수 13

0

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.common.keys import Keys


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

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

# 브라우저 생성
service = Service(executable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)

# 웹 사이트 열기
driver.maximize_window()
driver.get("https://www.naver.com")
driver.implicitly_wait(10) # 로딩이 끝날 때까지 10초는 기다림

# 쇼핑 메뉴 클릭
driver.find_element(By.CSS_SELECTOR, "#shortcutArea > ul > li:nth-child(4) > a").click()
time.sleep(2)

# 새창을 바라보게 만들기
new_window = driver.window_handles[1]
driver.switch_to.window(new_window)

# 검색창 클릭
search = driver.find_element(By.CSS_SELECTOR, "input._searchInput_search_text_3CUDs")
search.click()

# 검색어 입력
search.send_keys("아이폰 13")
search.send_keys(Keys.ENTER)

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

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

 

안녕하세요.

이번 강의를 참고하여 셀레니움4로 코드를 적용해보았는데

불필요한 라이브러리나 코드을 추가한게 있을까요?..

python 웹-크롤링

답변 2

0

박창원

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

options = Options()  # Options 객체 생성
options.add_experimental_option("detach",True)  # 꺼짐 방지


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

driver.get('https://naver.com')
driver.implicitly_wait(10)

driver.find_element(By.CSS_SELECTOR,'#shortcutArea > ul > li:nth-child(4) > a').click()
time.sleep(10)

# -----------------------------검색창 클릭 시도 1
# wait = WebDriverWait(driver, 30)
# search = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#gnb-gnb > div > div > button > span')))
# search.click()

# -----------------------------검색창 클릭 시도 2
# wait = WebDriverWait(driver, 30)
# search = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'span._combineHeader_expansion_search_inner_1VxB3')))
# search.click()


# -----------------------------검색창 클릭 시도 3
# search_script = "document.querySelector('#gnb-gnb > div > div > button > span').click();"
# driver.execute_script(search_script)

# -----------------------------검색창 클릭 시도 4
# search_element = driver.find_element(By.CSS_SELECTOR, '#gnb-gnb > div > div > button > span')
# ActionChains(driver).move_to_element(search_element).click().perform()


# -----------------------------검색창 클릭 시도 5
# wait = WebDriverWait(driver, 30)  # 최대 30초간 대기합니다.
# try:
#     search = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#gnb-gnb > div > div > button > span')))
# except TimeoutException:
#     print("요소를 찾을 수 없습니다.")

안녕하세요.

코딩 매우 초보이지만, 강의를 잘 따라 하고 있었는데, 검색어 클릭에서 막혔습니다.
주로 element를 못찾는다거나, timeout 에러가 발생합니다. 현재 네이버 쇼핑메뉴에 들어가면 팝업메뉴가 둥둥 떠있어서 그런것 같기도 합니다. 수동으로 검색어 클릭하면 two touch 해야 클릭 포커스가 잡힙니다. 검색어 클릭하기 위해서 코딩 초보가 자세한 뜻도 모르고 이것 저것 시도한 소스파일입니다.
검색어 클릭을 어떻게 하면 할수 있는지 도움 부탁드립니다.

 

0

스타트코딩

깔끔하게 잘 작성하셨는데요? ㅎㅎ

0

꾸해

감사합니다~!!

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

0

80

2

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

0

50

1

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

0

95

2

requests 관련 질문

1

144

2

설치 관련

0

134

2

vs code 결과출력이 안됩니다

0

153

1

크롤링 관련 질문입니다

0

218

2

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

0

194

1

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

0

1097

3

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

0

177

2

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

0

372

1

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

0

247

2

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

0

2731

1

실행오류

0

219

1

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

0

269

1

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

0

238

2

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

0

731

3

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

0

671

2

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

0

305

2

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

0

3422

2

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

0

664

1

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

0

337

2

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

0

339

2

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

0

768

2