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

如何用Python从Google Maps的XHR请求中提取坐标?

从Hemnet网页提取Google Maps坐标的方案

你已经定位到关键线索:坐标藏在名为SingleImageSearch的XHR请求负载中,无需解析页面HTML,直接模拟该API请求即可获取数据,具体步骤如下:

1. 采集请求详情

打开浏览器开发者工具的「网络」面板,找到SingleImageSearch请求:

  • 复制请求的完整URL(通常是Hemnet的API路径,类似https://www.hemnet.se/api/v1/maps/single_image_search)
  • 确认请求方法(基本为POST)
  • 复制请求头里的User-Agent、Referer、X-Requested-With等字段,这些是模拟请求的必要标识,避免被反爬拦截
  • 提取请求负载(Payload)里的参数,你提供的链接中的数字串1967930410921603954是核心参数之一

2. Python代码实现

用requests库直接发送POST请求,示例代码如下:

import requests

# 替换为实际的SingleImageSearch API地址
api_url = "https://www.hemnet.se/api/v1/maps/single_image_search"

# 模拟浏览器请求头,按需从开发者工具复制完整字段
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
    "Referer": "https://www.hemnet.se/salda/villa-5rum-bunkeflostrand-malmo-kommun-stenoregatan-72-1967930410921603954",
    "X-Requested-With": "XMLHttpRequest"
}

# 构建请求负载,参数从开发者工具的Payload里完整复制
payload = {
    "listing_id": "1967930410921603954",
    # 补充其他必要参数,比如zoom、image_size等,按实际Payload填写
}

# 发送请求并解析结果
response = requests.post(api_url, headers=headers, json=payload)
if response.ok:
    data = response.json()
    # 根据实际返回的JSON结构提取坐标,比如可能是data["location"]["coordinates"]
    coords = data.get("location", {}).get("coordinates")
    if coords:
        print(f"提取到的坐标:经度{coords[0]}, 纬度{coords[1]}")
    else:
        print("未找到坐标字段,请检查返回的JSON结构")
else:
    print(f"请求失败,状态码:{response.status_code}")

3. 关键注意点

  • 必须保证请求头和负载参数与浏览器中的完全一致,否则可能触发反爬返回403错误
  • 如果请求需要Cookie,从浏览器的请求头里复制完整Cookie字段加入headers
  • 网站API可能会不定期更新,若后续代码失效,重新检查网络面板的请求参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 04:52:44