使用selenium进行谷歌地图内容获取时,发现debug打断点时,需要手动点击一下last_element,然后页面循环,会不段的弹出自动化页面,并且输出结果正常,但正常执行或debug不打断点不手动点击时,模拟滚动就会失效,不知道是上面原因,请求解答。源代码如下:
import time from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.common.keys import Keys # 启动 Chrome 浏览器 driver = webdriver.Chrome() try: # 打开网页 url = f'https://www.google.com/maps/@44.6690207,-79.3916043,15z?entry=ttu' driver.get(url) # 定位搜索框并输入关键词 search_box = driver.find_element("name", "q") search_box.send_keys("移民") search_box.send_keys(Keys.RETURN) # 初始化 ActionChains 对象 actions = ActionChains(driver) time.sleep(3) # 循环10次 for _ in range(10): # 定位到最后一个 Nv2PK 元素 last_element = driver.find_elements_by_class_name("Nv2PK")[-1] # 将鼠标移动到最后一个元素 actions.move_to_element(last_element).perform() # 模拟按键向下滚动 actions.send_keys(Keys.ARROW_DOWN).perform() time.sleep(2) print(last_element) finally: # 关闭浏览器 driver.quit()