Amazon 검색 결과를 스크래핑할 때 후속 페이지의 페이지 매김 중에 StaleElementException 및 ValueError 오류가 발생합니다. 문제를 조사한 결과 초기 페이지 로드 후 탐색을 담당하는 페이지 요소가 오래되거나 사용할 수 없게 되는 것으로 나타났습니다.
제공된 코드를 조사한 결과 이 문제는 암시적 대기와 관련이 있을 수 있는 것으로 보입니다. 코드에는 10초 대기가 표시되어 있지만 이것이 완전한 10초 일시 중지를 보장하지는 않습니다. 대신 최대 10초의 대기 시간을 허용하지만 대상 요소를 찾으면 대기가 종료됩니다.
이 문제를 완화하려면 후속 작업을 실행하기 전에 페이지 안정성을 보장하기 위한 보다 명시적인 접근 방식을 권장합니다. 대체 솔루션은 다음과 같습니다.
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 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
이 솔루션은 탐색을 시도하기 전에 다음 페이지 버튼을 클릭할 수 있도록 명시적인 대기를 사용합니다. 대기는 최대 10초 동안 또는 버튼을 찾아 상호 작용할 준비가 될 때까지 계속됩니다. 이 접근 방식은 오래된 요소 문제를 제거하고 안정적인 자동화를 보장합니다.
위 내용은 Amazon에서 반복적인 웹 스크래핑 중에 StaleElementException이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!