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

如何用Python通过XHR爬取高速出入口组合通行费数据并导出Excel

通行费数据爬取实现方案

1. 抓包提取XHR接口

打开目标页面后按F12启动开发者工具,切换到「网络」面板的「XHR/提取」分类,手动选择一组出入口查询通行费,就能捕捉到对应的后端请求:

  • 记下请求地址、请求方法(一般为POST)、请求头、请求参数结构
  • 同时查找站点初始化时加载的全量出入口点位接口,提取所有出入口的ID和名称映射,无需手动录入

2. Python请求代码实现

提前安装依赖:pip install requests pandas openpyxl

import requests
import pandas as pd
import time

# 替换为你抓包得到的请求头,和浏览器请求保持一致即可避免拦截
headers = {
    "User-Agent": "替换为你自己浏览器的UA",
    "Referer": "替换为目标页面地址"
}
# 替换为你抓包得到的通行费查询接口地址
toll_api = "替换为实际查询接口地址"
# 替换为你提取到的出入口列表,示例格式:[{"id": "123", "name": "Jones Branch Drive/Route 123"}]
entry_points = []
exit_points = []
all_data = []

# 遍历所有出入口组合请求
for entry in entry_points:
    for exit_p in exit_points:
        # 请求参数和抓包得到的结构完全一致
        req_params = {
            "entryId": entry["id"],
            "exitId": exit_p["id"]
            # 其他需要的参数按抓包结果补充
        }
        try:
            resp = requests.post(toll_api, json=req_params, headers=headers, timeout=10)
            resp.raise_for_status()
            toll_info = resp.json()
            # 按你需要的字段整理数据
            all_data.append({
                "入口名称": entry["name"],
                "出口名称": exit_p["name"],
                "通行费金额": toll_info.get("toll"),
                "路线长度": toll_info.get("distance"),
                "预计通行时间": toll_info.get("duration")
                # 其他字段自行补充
            })
            # 控制请求频率,避免被封IP
            time.sleep(0.5)
        except Exception as e:
            print(f"请求失败,入口:{entry['name']},出口:{exit_p['name']},错误:{str(e)}")

3. 导出到Excel

直接用pandas处理生成Excel即可:

df = pd.DataFrame(all_data)
# index=False表示不导出pandas自带的索引列
df.to_excel("expresslanes通行费数据.xlsx", index=False)

注意事项

  • 如果接口有签名校验,需要逆向js生成签名参数,再带入请求中
  • 遇到返回异常的请求可以新增3次以内的重试逻辑,提升数据完整度
  • 如果站点有反爬机制,可考虑加代理IP池规避IP封禁

内容的提问来源于stack exchange,提问作者Ravi kumar Pandey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:24:04