Selenium으로 Amazon 결과 탐색
Selenium을 사용하여 Amazon에서 검색 결과를 반복할 때 발생할 수 있는 일반적인 오류는 StaleElementException입니다. 이 오류는 페이지 변경이나 새로 고침으로 인해 상호작용 중인 요소가 더 이상 DOM에 연결되지 않음을 나타냅니다.
이 문제를 극복하려면 복잡한 논리에 의존하여 특정 요소로 스크롤하는 대신 더 간단한 접근 방식을 취할 수 있습니다. 사용 가능한 "다음" 버튼을 반복적으로 클릭하면 스크립트가 오류 없이 결과 페이지를 이동할 수 있습니다.
이 수정된 코드는 명시적 대기를 활용하여 버튼을 클릭하기 전에 버튼을 클릭할 수 있는지 확인합니다.
from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait as wait from selenium.common.exceptions import TimeoutException driver = webdriver.Chrome() driver.get('https://www.amazon.com/s/ref=nb_sb_noss_1?url=search-alias%3Daps&field-keywords=sonicare+toothbrush') while True: try: wait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'a > span#pagnNextString'))).click() except TimeoutException: break
implicitly_wait() 메서드는 명시적 대기 메서드와 마찬가지로 전체 대기 시간을 보장하지 않는다는 점에 유의하는 것이 중요합니다. 대신 요소가 DOM에 나타날 때까지 드라이버가 기다리는 최대 시간을 나타내며 요소가 감지되면 대기가 갑자기 종료됩니다.
위 내용은 Selenium을 사용하여 Amazon 검색 결과를 효율적으로 탐색하고 StaleElementException을 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!