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

如何获取WSDOT华盛顿州轮渡2021年3-6月ETA预测历史原始数据

华盛顿州轮渡2021年3-6月历史数据获取方案

WSDOT

你提到的WSDOT实时船只状态接口仅返回当前实时数据,本身不支持历史时段查询,因此无法直接通过该接口获取2021年的历史归档数据,相关获取方案及问题解答如下:

1. 历史数据的正规获取渠道

  • 优先查看WSDOT官方开放数据门户的轮渡运营历史归档,2021年的运营数据属于公开可下载范畴,支持JSON、CSV等多种格式导出,部分归档数据可达到1分钟的采集精度
  • 若官方公开归档没有符合要求的细粒度数据,可查询高校交通研究实验室公开的WSDOT数据归档,不少研究团队会长期定时爬取实时接口并公开历史数据集,可直接下载对应时段的归档包
  • 也可以联系该Github项目作者或同类研究的参与者,咨询是否有留存2021年的对应原始数据,多数研究人员愿意共享非涉密的原始数据集

2. Python requests库的适用场景

requests库无法直接爬取到已过去的2021年历史数据,但如果你需要自行采集当前及未来的实时数据做归档,可以使用requests实现定时采集,参考代码如下:

import requests
import time
import json

# WSDOT实时轮渡数据接口
API_URL = "https://www.wsdot.com/ferries/vesselwatch/Vessels.ashx"

if __name__ == "__main__":
    # 每分钟采集一次,存储到本地
    while True:
        try:
            response = requests.get(API_URL, timeout=15)
            response.raise_for_status()
            ferry_real_time_data = response.json()
            # 用时间戳命名避免文件名重复
            file_name = f"ferry_data_{int(time.time())}.json"
            with open(file_name, "w", encoding="utf-8") as f:
                json.dump(ferry_real_time_data, f, ensure_ascii=False, indent=2)
            # 等待60秒进行下一次采集,符合1分钟精度要求
            time.sleep(60)
        except Exception as e:
            print(f"采集异常,10秒后重试:{str(e)}")
            time.sleep(10)

3. 其他可行方案

  • 申请WSDOT官方开放API的免费密钥,官方API支持按时间范围查询历史轮渡数据,可直接导出指定时段的1分钟精度数据,无需自行处理爬取逻辑
  • 若需要长期高频采集数据,可使用Scrapy等爬虫框架实现,内置的重试、去重、数据库存储模块能大幅降低维护成本
  • 若仅做临时研究使用,可查找公开的交通数据集共享平台,部分平台已经整理好了不同时段的WSDOT轮渡历史数据集,可直接下载使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:39:03