python-3.x - Python/Selenium - 如何解析 URL 并单击下一页?
问题描述
我正在尝试从https://www.weforum.org/agenda/archive/covid-19解析所有文章的 href 和标题,但我也想在下一页上提取信息。
我的代码只能拉当前页面,但不能在 click() 下一页上工作。
driver.get("https://www.weforum.org/agenda/archive/covid-19")
links =[]
titles = []
while True:
for elem in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '.tout__link'))):
links.append(elem.get_attribute('href'))
titles.append(elem.text)
try:
WebDriverWait(driver,5).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".pagination__nav-text"))).click()
WebDriverWait(driver,5).until(EC.staleness_of(elem))
except:
break
谁能帮我解决这个问题?谢谢!
解决方案
类名“pagination__nav-text”不是唯一的。根据设计,它点击第一个找到的元素,即“Prev”链接。所以你不会看到那个工作。
可以试试这个方法吗
driver.get("https://www.weforum.org/agenda/archive/covid-19")
wait = WebDriverWait(driver,10)
links =[]
titles = []
while True:
for elem in wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '.tout__link'))):
links.append(elem.get_attribute('href'))
titles.append(elem.text)
try:
print('trying to click next')
WebDriverWait(driver,5).until(EC.presence_of_element_located((By.XPATH,"//div[@class='pagination__nav-text' and contains(text(),'Next')]"))).click()
WebDriverWait(driver,5).until(EC.staleness_of(elem))
except:
break
print(links)
print(titles)
driver.quit()
推荐阅读
- javascript - 如何将 c# 列表转换为 Jquery 电子日历事件?
- javascript - 如何缩小我的个人 jquery 前端微框架
- python - 键和值输出 - Python 集合
- javascript - 单击背景时防止模式关闭[Vuejs]
- gdb - KGDB,远程连接错误
- javascript - 在$位置搜索angularjs中通过变量传递参数
- android - 分离片段时的 EditText onFocusChangeListener 错误
- html - 角度材质动画 - matRipple:转义 div 元素的边界
- log4j2 - 将 jaeger trace id 和 span id 添加到 log4j2 日志
- python - Power BI 中的 Python 脚本将日期返回为 Microsoft.OleDb.Date