python - 我使用 selenium 进行抓取,但在 56 个列表中我只能获得 40 个列表。但是所有 56 个列表的类名都相同
问题描述
尝试:
for i in range(1, 20):
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
driver.find_element_by_xpath("/html/body/div[5]/main/div/div/app-root/app-search-result/div/div[2]/div[2]/div[2]/button[1]").click()
除了:通过
course_list = driver.find_elements_by_xpath("//*[@class='wrap-result']")
print("课程总数:", len(course_list))
解决方案
问题: 当您移动到页面底部时,您实际上已移出“显示更多”按钮的可点击区域。如果按钮不可点击(即在屏幕外,或在某些 div 后面,例如在您的情况下接受 cookies div),则 selenium 不会点击该按钮。
解决方案: 尝试通过注入javascript点击。
driver.execute_script("""document.querySelector(".dgf-show-more-button").click()""")
注意:也不要忘记点击cookies的“我接受”按钮。
推荐阅读
- r - 在 R 中处理数据挖掘中的未识别字符
- java - 我的 public int 没有使用正确的参数,是我的调用错误吗?
- c# - 在运行时c#中编译自定义方法
- c# - 关系总和小于属性的 EF Core 查询
- nim-lang - 如何从 Nim 中的过程返回数组
- phpstorm - PhpStorm:日志选项卡(版本控制)不显示更改的文件
- python - 使用 selenium 单击后不会出现隐藏的 div 弹出窗口
- java - Apache Poi - 用逗号分隔数字的 Excel 单元格转换为十进制数
- spring-boot - 来自 application.yml 的 ObjectMapper 配置未在测试中使用
- javascript - AJAX - 根据间隔进行 API 调用