首页 > 解决方案 > 我使用 selenium 进行抓取,但在 56 个列表中我只能获得 40 个列表。但是所有 56 个列表的类名都相同

问题描述

主要网址:https ://www.kaplanpathways.com/degree-finder/#/search-result?status=7&institution_short_name=Arizona-State-University-Downtown-Phoenix-Campus&subject_area_name=&university=38°ree_level=20

尝试:

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))

标签: pythonlistxpathselenium-chromedriver

解决方案


问题: 当您移动到页面底部时,您实际上已移出“显示更多”按钮的可点击区域。如果按钮不可点击(即在屏幕外,或在某些 div 后面,例如在您的情况下接受 cookies div),则 selenium 不会点击该按钮。

解决方案: 尝试通过注入javascript点击。

driver.execute_script("""document.querySelector(".dgf-show-more-button").click()""")

注意:也不要忘记点击cookies的“我接受”按钮。


推荐阅读