Selenium 爬虫使用 Python 为 100 多个页面自动执行下一个按钮
Selenium crawler automate next button for 100+ pages using Python
我正在为所有 ID(3000+)抓取一个页面,稍后我将其保存到一个文本文件中。
所以我的代码按照我想要的方式工作,但现在我正在寻找一种自动化方法,而不是通过点击网页重复以下过程 100 多次。
类似于:
next.click()*100.....
非常感谢建设性的建议:)
我当前的(工作)代码:
next = driver.find_element(By.CSS_SELECTOR,'img.down')
#next page button
main = driver.find_elements(By.CSS_SELECTOR, "span.id")
time.sleep(2)
for m in main:
print(m.text)
next.click()
time.sleep(2)
main = driver.find_elements(By.CSS_SELECTOR, "span.id")
for m in main:
print (m.text)
driver.quit()
感谢您的提示!
使用 WebDriverWait 的 while 循环可以解决问题。
wait = WebDriverWait(driver, 3)
while True:
main = driver.find_elements(By.CSS_SELECTOR, "span.id")
time.sleep(2)
for m in main:
print(m.text)
try:
element = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'img.down')))
element.click()
except TimeoutException:
break
driver.quit()
我正在为所有 ID(3000+)抓取一个页面,稍后我将其保存到一个文本文件中。
所以我的代码按照我想要的方式工作,但现在我正在寻找一种自动化方法,而不是通过点击网页重复以下过程 100 多次。 类似于:
next.click()*100.....
非常感谢建设性的建议:)
我当前的(工作)代码:
next = driver.find_element(By.CSS_SELECTOR,'img.down')
#next page button
main = driver.find_elements(By.CSS_SELECTOR, "span.id")
time.sleep(2)
for m in main:
print(m.text)
next.click()
time.sleep(2)
main = driver.find_elements(By.CSS_SELECTOR, "span.id")
for m in main:
print (m.text)
driver.quit()
感谢您的提示! 使用 WebDriverWait 的 while 循环可以解决问题。
wait = WebDriverWait(driver, 3)
while True:
main = driver.find_elements(By.CSS_SELECTOR, "span.id")
time.sleep(2)
for m in main:
print(m.text)
try:
element = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'img.down')))
element.click()
except TimeoutException:
break
driver.quit()