selenium python load more按钮不工作



我试图点击加载更多的按钮无限时间,直到加载所有的产品。但我的加载按钮不工作。下面是我的代码:

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 ->网络→看看每次点击Load More Products

时浏览器是如何进行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()等待几秒钟,直到按钮每次点击后加载,因为这是一个很好的做法,web抓取。也许这个问题是两者的结合:)

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")

最新更新