我是selenium和webscraping的新手,我正试图从链接中获取信息:https://www.carmudi.com.ph/cars/civic/distance:50km/?sort=suggested
以下是我正在使用的代码片段:
while max_pages > 0:
results.extend(extract_content(driver.page_source))
next_page = driver.find_element_by_xpath('//div[@class="next-page"]')
driver.execute_script('arguments[0].click();', next_page)
max_pages -= 1
当我尝试打印结果时,我总是得到(max_pages)来自第1页的相同结果。页面中显示“下一页”按钮,当我尝试查找同一类的元素时,它只显示1个元素。当我尝试通过精确的xpath获取元素并对其执行单击操作时,它也不起作用。我将它包含在try-except块中,但没有错误。为什么会这样?
答案 0 :(得分:1)
你使这比它需要的更复杂。在这里使用JS点击没有意义......只需使用正常的Selenium点击。
while True:
# do stuff on the page
next = driver.find_element_by_css_selector("a[title='Next page']")
if next
next.click()
else
break
答案 1 :(得分:0)
取代:
next_page = driver.find_element_by_xpath('//div[@class="next-page"]')
driver.execute_script('arguments[0].click();', next_page)
使用:
driver.execute_script('next = document.querySelector(".next-page"); next.click();')
如果您在控制台中尝试next = document.querySelector(".next-page"); next.click();
,则可以看到它有效。