Bagaimana untuk Mengelakkan StaleElementException Apabila Mengikis Hasil Carian Amazon?

Barbara Streisand
Lepaskan: 2024-11-22 00:56:14
asal
935 orang telah melayarinya

How to Avoid StaleElementException When Scraping Amazon Search Results?

StaleElementException dalam Lelaran Selenium

Apabila cuba melelar melalui hasil carian di Amazon menggunakan Selenium, pengguna mungkin menghadapi StaleElementException apabila berulang kali menatal ke bawah ke memuatkan halaman baharu. Ralat ini berlaku kerana elemen yang digunakan untuk menatal, bottom_bar, menjadi tidak sah selepas halaman dimuat semula.

Untuk menyelesaikan isu ini dan mendayakan penomboran yang lebih dipercayai, adalah disyorkan untuk menggunakan pendekatan yang lebih mudah yang menghapuskan penatalan halaman yang eksplisit. Sebaliknya, Selenium boleh terus mengklik butang "Seterusnya" sehingga ia menjadi dilumpuhkan. Ini memudahkan kod dan memastikan pemandu boleh menavigasi hasil carian secara konsisten.

Kod yang dikemas kini di bawah melaksanakan pendekatan ini:

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
Salin selepas log masuk

Perhatikan bahawa implicitly_wait(10) tidak menunggu untuk penuh 10 saat tetapi sebaliknya "menunggu sehingga 10 saat untuk elemen muncul dalam DOM HTML." Oleh itu, jika elemen ditemui dalam tempoh yang lebih singkat (cth., 1 atau 2 saat), proses menunggu selesai.

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan StaleElementException Apabila Mengikis Hasil Carian Amazon?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan