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

如何用Python抓取动态加载的交互式地图数据?

抓取动态加载地图数据的方法选择

优先尝试requests(更高效)

大多数动态加载的地图数据,其实是通过AJAX请求从后端接口获取的,不需要启动浏览器。你可以按以下步骤操作:

  • 打开浏览器开发者工具(F12),切换到「网络」标签页,刷新页面。
  • 过滤「XHR/Fetch」类型的请求,查找和地图数据相关的接口(比如包含job、maintenance、map这类关键词的请求)。
  • 找到目标接口后,复制其请求URL、请求头(尤其是User-Agent、Referer这类可能的校验字段),用requests模拟发送请求。
  • 接口返回的通常是JSON格式数据,直接解析就能得到所有“jobs”数据,转成字典后就可以存入NoSQL数据库。

比如你可以用类似这样的代码框架:

import requests
import json

headers = {
    "User-Agent": "你的浏览器User-Agent",
    "Referer": "https://www.enel.com.co/es/personas/mantenimientos-programados.html"
}
api_url = "找到的接口URL"
response = requests.get(api_url, headers=headers)
jobs_data = response.json()
# 转成字典后处理存入数据库

仅在必要时使用Selenium

如果接口有复杂的反爬(比如需要JS生成的签名、Cookie验证,或者数据是直接渲染在页面DOM里而非通过接口返回),再考虑用Selenium:

  • 启动浏览器加载目标页面,等待地图元素加载完成(可以用WebDriverWait等待特定元素出现)。
  • 定位地图对应的DOM元素,提取其中的data属性或者直接解析页面中的JS变量(比如有些页面会把数据存在window.mapData这类全局变量里)。
  • 提取数据后转成字典,存入数据库。

总结

先优先抓包找接口,用requests处理,这比Selenium更轻量、更快。只有当接口无法直接获取数据时,再用Selenium模拟浏览器渲染。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:17:15