작성
·
607
0
PS C:\Users\SAMSUNG\Desktop\python> python main.py
DevTools listening on ws://127.0.0.1:3998/devtools/browser/e175eec7-d9d5-49f4-927d-071f1a1300da
오류 발생: Message:
Stacktrace:
GetHandleVerifier [0x00007FF6F642EEA2+31554]
(No symbol) [0x00007FF6F63A7ED9]
(No symbol) [0x00007FF6F626872A]
(No symbol) [0x00007FF6F62B8434]
(No symbol) [0x00007FF6F62B853C]
(No symbol) [0x00007FF6F62FF6A7]
(No symbol) [0x00007FF6F62DD06F]
(No symbol) [0x00007FF6F62FC977]
(No symbol) [0x00007FF6F62DCDD3]
(No symbol) [0x00007FF6F62AA33B]
(No symbol) [0x00007FF6F62AAED1]
GetHandleVerifier [0x00007FF6F6738B1D+3217341]
GetHandleVerifier [0x00007FF6F6785AE3+3532675]
GetHandleVerifier [0x00007FF6F677B0E0+3489152]
GetHandleVerifier [0x00007FF6F64DE776+750614]
(No symbol) [0x00007FF6F63B375F]
(No symbol) [0x00007FF6F63AEB14]
(No symbol) [0x00007FF6F63AECA2]
(No symbol) [0x00007FF6F639E16F]
BaseThreadInitThunk [0x00007FF854DB257D+29]
도와주실 수 있나요?
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import os
import urllib.request
# ChromeDriver 경로
driver_path = "C:/Users/SAMSUNG/Desktop/python/chromedriver-win64/chromedriver.exe"
# Chrome 옵션 설정
chrome_options = Options()
chrome_options.add_argument("--headless") # 브라우저를 띄우지 않고 실행할 경우 주석 해제
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--no-sandbox")
# Selenium WebDriver 생성
driver = webdriver.Chrome(service=Service(driver_path), options=chrome_options)
try:
# Google 이미지 검색 페이지 열기
driver.get("https://www.google.com/imghp?hl=ko")
# 검색어 입력
search_box = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "q")))
search_query = "사층리사진" # 검색하고 싶은 키워드 입력
search_box.send_keys(search_query)
search_box.send_keys(Keys.RETURN)
# 이미지 탭을 기다리고 클릭하기
img_tab = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//a[contains(text(),'이미지')]")))
img_tab.click()
# 이미지 링크 수집
time.sleep(2)
img_links = []
for i in range(5): # 처음부터 5페이지까지 이미지 링크 수집
soup = BeautifulSoup(driver.page_source, "html.parser")
for img in soup.find_all("img", class_="rg_i Q4LuWd"):
try:
if 'src' in img.attrs:
img_links.append(img['src'])
elif 'data-src' in img.attrs:
img_links.append(img['data-src'])
except KeyError:
continue
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(2)
try:
next_button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, "smb"))
)
next_button.click()
time.sleep(2)
except:
break
# 이미지 다운로드
save_folder = "C:/Users/SAMSUNG/Desktop/python/downloaded_images"
os.makedirs(save_folder, exist_ok=True)
for idx, link in enumerate(img_links):
img_name = f"image_{idx+1}.jpg"
save_path = os.path.join(save_folder, img_name)
try:
urllib.request.urlretrieve(link, save_path)
print(f"{img_name} 다운로드 완료")
except Exception as e:
print(f"{img_name} 다운로드 실패: {e}")
except Exception as e:
print(f"오류 발생: {e}")
finally:
# WebDriver 종료
driver.quit()
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
허지훈님께서 전달해주신 스크립트와 오류 메시지를 바탕으로 문제에 대해 설명드리겠습니다.
주어진 오류 메시지만으로는 구체적인 원인 파악이 어렵습니다만, 웹 드라이버 관련된 문제일 가능성이 높아 보입니다. 구체적인 원인 분석과 해결을 위해 몇 가지 방법을 제안드립니다.
추가적으로, 이미지 탭을 클릭하는 과정에서 발생한 오류일 수 있으니, 해당 부분의 XPATH가 정확한지 확인하고, 필요하다면 다른 요소 선택자를 사용해 시도해보세요.
만약 위의 방법으로도 문제가 해결되지 않는다면, 구체적인 오류 메시지나 발생 상황을 추가로 제공해주시면 보다 정확한 도움을 드릴 수 있을 것 같습니다.