python - 脚本无法继续单击加载更多按钮
问题描述
我在 Python 中编写了一个与 selenium 相关的脚本,以继续单击MORE
按钮以加载更多项目,直到网页中没有新项目可供加载。MORE
但是,我下面的脚本可以在该页面底部的可用按钮上单击一次。
到目前为止,这是我的尝试:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
link = "https://angel.co/companies?company_types[]=Startup&company_types[]=Private+Company&company_types[]=Mobile+App&locations[]=1688-United+States"
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
driver.get(link)
while True:
for elems in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,".results .name a.startup-link"))):
print(elems.get_attribute("href"))
try:
loadmore = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR,"[class='more']")))
driver.execute_script("arguments[0].scrollIntoView();", loadmore)
loadmore.click()
except Exception:break
driver.quit()
我怎样才能继续单击该MORE
按钮,直到没有这样的按钮可以单击和解析链接,因为我已经尝试过使用for loop
.
解决方案
我已经设法在我现有的脚本中解决了追求安德森爵士逻辑的问题。这就是修改后的脚本的样子。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
link = "https://angel.co/companies?company_types[]=Startup&company_types[]=Private+Company&company_types[]=Mobile+App&locations[]=1688-United+States"
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
driver.get(link)
while True:
try:
loadmore = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR,"[class='more']")))
driver.execute_script("arguments[0].click();", loadmore)
wait.until(EC.staleness_of(loadmore))
except Exception:break
for elems in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,".results .name a.startup-link"))):
print(elems.get_attribute("href"))
driver.quit()
推荐阅读
- mysql - MySQL - 使用迭代整数更新选择
- javascript - 在特定容器中渲染 Recaptcha V2 Challenge
- pandas - 在 Pandas 中合并索引标题行和列标题行
- python - Google Colaboratory:AttributeError:模块“ColabTurtle.Turtle”没有属性“circle”
- amazon-web-services - 如何在 AWS 云形成中引用嵌套堆栈资源?
- ios - 在另一个圆形 UIView 中移动一个圆形 UIView
- python - Scikit-fuzzy 得到错误引发 ValueError("Unexpected input: " + key)
- python - 如何将 tensorflow.keras 模型移动到 GPU
- reactjs - 将 app.js 从 create-react-app 转换为 react native,得到错误 Invariant Violation
- python - 带有早期条件检查的列表理解