selenium python 加载更多按钮不起作用

selenium python load more button not working

我正在尝试无限次点击加载更多按钮,直到加载所有产品。但是我的加载更多按钮不起作用。这是我的代码:

url = 'https://www.pursemall.ru/vuitton/damier-azur'
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(url)


try:
    for i in range(1000):
     load_more_button = driver.find_element_by_xpath("//span[text()='Load More Products']")
     load_more_button.click()
except:
    pass
    print("task load more button completed") 

为什么我的加载更多按钮不起作用?我哪里做错了?

您可以执行以下操作。循环内的每个调用都将获取一组产品。您可以抓取每个回复并收集数据。

在浏览器中执行 F12 -> 网络 -> XHR 并查看每次点击 加载更多产品

时浏览器如何执行 HTTP 调用
import requests


for page in range(1,4):
    url = f'https://www.pursemall.ru/vuitton/damier-azur?page={page}'
    print(url)
    r = requests.get(url)
    print(r.status_code)

我不是 100% 确定为什么您的原始代码无法正常工作,但我可以通过复制按钮的完整 XPATH 而不是上面代码中的内容来使其正常工作。

我还使用 WebDriverWaitsleep() 等待几秒钟,直到每次点击后按钮被加载,因为这是网络抓取工具的好习惯。也许问题是两者的结合:)

url = 'https://www.pursemall.ru/vuitton/damier-azur'
driver = webdriver.Chrome(PATH) # PATH is where you have chromedriver stored on your machine
driver.maximize_window()
driver.get(url)

try:
    for i in range(1000):
        load_more_button = WebDriverWait(driver, 10).until(ec.element_to_be_clickable(
            (By.XPATH, '/html/body/div[1]/div/div[3]/div[3]/span/a/span')))
        sleep(3)
        load_more_button.click()
except:
    pass
    print("task load more button completed")