【发布时间】:2017-07-30 10:07:57
【问题描述】:
我在 python 中结合 selenium 编写了一些代码。我打算从网页解析表格。我已经让它工作了。但是,当我尝试单击下一页按钮时出现了问题。刮板仅从第一页解析表格,而不是单击下一步按钮,它退出而不抛出任何错误。所以,我无法理解我错过了什么。
以下是完整代码供您参考:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
driver.get("https://toolkit.financialexpress.net/santanderam")
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'table.fe-datatable')))
tab_data = driver.find_element_by_css_selector('table.fe-datatable')
while True:
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'tr')))
list_rows = [[cell.text for cell in row.find_elements_by_css_selector('td')]
for row in tab_data.find_elements_by_css_selector('tr')]
for data in list_rows:
print(data)
try:
driver.find_element_by_css_selector('a.ui-paging-next').click()
except:
break
driver.quit()
下一页按钮所在的元素:
<div class="pagination ui-widget"><span class="ui-paging-current ui-state-default ui-state-disabled ui-corner-all ui-paging-prev">Prev</span><span class="ui-paging-current ui-state-default ui-state-disabled ui-state-highlight ui-corner-all">1</span><a class="ui-paging-button ui-state-default ui-corner-all" href="#">2</a><a class="ui-paging-button ui-state-default ui-corner-all" href="#">3</a><a class="ui-paging-button ui-state-default ui-corner-all" href="#">4</a><span class="ui-state-default ui-corner-all ui-state-disabled ui-paging-ellipse">...</span><a class="ui-paging-button ui-state-default ui-corner-all ep" href="#">7</a><a class="ui-paging-button ui-state-default ui-corner-all ui-paging-next" href="#">Next</a></div>
【问题讨论】:
-
试试 driver.find_element_by_css_selector("a[class*='ui-paging-next']").click() 或 find_element_by_link_text('Next').click()
-
感谢蚱蜢,为您解答。它没有使用 css 选择器来解决问题,但它似乎正在使用链接文本。测试后会回复你。谢谢。
-
它确实点击了链接,但引发了另一个错误。 " raise exception_class(message, screen, stacktrace) selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attach to the page document"
-
@SMth80,您在哪一行得到异常?
标签: python python-3.x selenium selenium-webdriver web-scraping