硒python加载更多按钮不起作用
Posted
技术标签:
【中文标题】硒python加载更多按钮不起作用【英文标题】:selenium python load more button not working 【发布时间】:2021-11-18 02:45:27 【问题描述】:我正在尝试无限时间单击加载更多按钮,直到加载所有产品。但是我的加载更多按钮不起作用。这是我的代码:
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")
为什么我的加载更多按钮不起作用?我在哪里做错了?
【问题讨论】:
尝试检查元素并复制其 CSS 选择器或 XPath 【参考方案1】:我不能 100% 确定为什么您的原始代码无法正常工作,但我能够通过复制按钮的完整 XPATH 而不是上面代码中的内容来使其正常工作。
我还使用WebDriverWait
和sleep()
等待几秒钟,直到每次点击后按钮加载完毕,因为这是网络爬虫的好习惯。也许问题是两者的结合:)
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")
【讨论】:
【参考方案2】:您可以执行以下操作。循环内的每个调用都会获取一组产品。您可以抓取每个响应并收集数据。
在浏览器中执行 F12 -> Network -> XHR 并查看每次点击 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)
【讨论】:
以上是关于硒python加载更多按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章