You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python Selenium实现谷歌地图页面向下滚动

核心问题
  • 选择器失效:代码中使用的div[jstcache="211"]无法稳定定位到可滚动容器。谷歌地图的jstcache属性是前端动态生成的,页面刷新、版本迭代后属性值都会变化,大概率匹配到非滚动区域的普通div元素。
  • 滚动判断逻辑错误:初始滚动高度取的是全局document.body的高度,后续取的是指定div的滚动高度,二者对比基准不一致,高度变化判断完全失效。
  • 缺少前置聚焦步骤:谷歌地图的搜索结果面板需要先获得焦点,滚动操作才会触发内容加载,直接对未聚焦的元素调用滚动API不会产生效果。
  • 如果你使用Selenium 4及以上版本,旧的find_element_by_css_selector接口已经被废弃,调用会直接抛错,需要使用新的定位写法。
可直接运行的修正代码

定位可滚动容器时不要使用动态的jstcache属性,谷歌地图搜索结果面板有固定的role="feed"属性,跨版本稳定不会变化。

import time
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def scroll(self):
    SCROLL_PAUSE_TIME = 2
    MAX_SCROLL_LIMIT = 20  # 防止无限循环,可根据实际需求调整
    scroll_count = 0

    # 等待可滚动面板加载完成,使用固定属性定位
    scroll_container = WebDriverWait(self, 10).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, 'div[role="feed"]'))
    )
    # 点击容器获取焦点
    scroll_container.click()
    time.sleep(0.5)

    # 统一取容器自身的初始滚动高度,不要取body高度
    last_height = self.execute_script("return arguments[0].scrollHeight", scroll_container)

    while scroll_count < MAX_SCROLL_LIMIT:
        scroll_count += 1
        # 直接滚动到容器当前底部,触发新内容加载
        self.execute_script("arguments[0].scrollTo(0, arguments[0].scrollHeight);", scroll_container)
        
        # 等待新结果加载
        time.sleep(SCROLL_PAUSE_TIME)

        # 计算新的滚动高度
        new_height = self.execute_script("return arguments[0].scrollHeight", scroll_container)

        # 高度无变化说明已经滚动到最底部,直接退出循环
        if new_height == last_height:
            break
        last_height = new_height
兼容方案

如果上述JS滚动方式在你的场景下依然不生效,可以替换为模拟键盘翻页的方式,兼容性更强:

# 替换掉JS滚动的代码,聚焦容器后发送翻页按键即可
scroll_container.send_keys(Keys.PAGE_DOWN)
注意事项
  • 不要使用任何带jstcache属性的选择器定位谷歌地图元素,这类属性值均为动态生成,稳定性为0。
  • 滚动暂停时间设置为2-3秒即可,谷歌地图的列表结果加载速度很快,设置5秒会大幅降低操作效率。
  • 如果需要滚动的是地图主界面而非侧边搜索结果列表,定位的容器改为匹配div[role="application"]的地图画布元素即可,滚动逻辑完全一致。

内容的提问来源于stack exchange,提问作者glitch_123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 01:01:25