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

如何使用Selenium点击谷歌地图并抓取点位对应的标题数据

问题原因及解决方法

你现有代码主要存在3个问题:

  • move_by_offset 是基于鼠标当前位置计算偏移,不是基于画布左上角,所以无法定位到画布中心
  • 点击后没有等待页面标题更新就直接取值,获取到的还是跳转初始的默认标题
  • 循环里直接给df_fin['my_place']赋值会覆盖整个列,应该只给当前遍历的行赋值

修改后的完整代码如下:

import pandas as pd
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
import time

# 读取数据
df_fin = pd.read_csv('C:\\Users\\df_fin.csv')
# 提前初始化存储列
df_fin['my_place'] = ''

driver = webdriver.Chrome('C:\\Users\\TryMe\\chromedriver.exe')
driver.maximize_window()
driver.implicitly_wait(5)

for idx, item in enumerate(df_fin['place']):
    try:
        driver.get(item)
        wait = WebDriverWait(driver, 10)
        # 等待画布加载完成
        main_canvas = wait.until(EC.element_to_be_clickable((By.XPATH, "//*[name()='canvas']")))
        # 先把鼠标移动到画布左上角,再偏移半宽半高到中心后点击
        ActionChains(driver).move_to_element_with_offset(main_canvas, 0, 0)\
            .move_by_offset(main_canvas.size['width']/2, main_canvas.size['height']/2)\
            .click().perform()
        # 等待标题更新为非默认的Google Maps
        wait.until(lambda d: d.title != 'Google Maps')
        # 如果读title不稳定,也可以直接定位左侧信息栏的标题元素取值,更稳妥:
        # place_title = wait.until(EC.presence_of_element_located((By.XPATH, '//h1[contains(@class,"DUwDvf")]'))).text
        # df_fin.loc[idx, 'my_place'] = place_title
        df_fin.loc[idx, 'my_place'] = driver.title
        print(driver.title)
    except:
        df_fin.loc[idx, 'my_place'] = 'OTHER'
        print(f"第{idx+1}条处理失败")

print(df_fin.head(10))
# 可自行增加结果保存逻辑
# df_fin.to_csv('处理结果.csv', encoding='utf-8-sig', index=False)
driver.quit()

如果要进一步提升准确率,可以打开F12确认谷歌地图左侧地点标题的实际元素特征,调整代码中注释部分的XPath直接读取元素文本即可,不需要依赖页面标题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 16:36:01