【问题标题】:Python requests timing out on JSONPython 请求在 JSON 上超时
【发布时间】:2022-01-04 00:45:27
【问题描述】:

我住在圣地亚哥,我一直在使用 SD County API 为我的社区运行一个小型 covid 仪表板。这是 API 网站:https://sdgis-sandag.opendata.arcgis.com/datasets/covid-19-statistics-by-zip-code/api,这是我一直在使用的查询:https://gis-public.sandiegocounty.gov/arcgis/rest/services/Hosted/COVID_19_Statistics__by_ZIP_Code/FeatureServer/0/query?where=ziptext%20%3D%20%2792131%27&outFields=*&outSR=4326&f=json

在该县实施某种防火墙以防止 DDOS 攻击之前,一切正常,我无法再访问此 API。我有一个简单的 python 请求,但它超时了:requests.post(srQuery,timeout=5) 我一直在与之交谈的员工不知道它为什么会发生并且似乎无法修复它。

我能想到的唯一解决方法是使用浏览器访问 API,然后将文件保存到我的计算机,然后手动读取。有人有更好的主意吗?或者知道如何自动将浏览器文件保存到我的硬盘?

【问题讨论】:

  • 任何可比较的软件包都这样做” 根据@中定义的站点范围,寻求图书馆和其他场外资源建议的问题在此处明确偏离主题987654323@.
  • 这可能是该站点/API 1) 限制您的速率,在这种情况下尝试减少您发出的请求和/或遵循其公平使用政策,或 2) 阻止 Python 请求库, 在这种情况下,请参阅 How to use Python requests to fake a browser visit a.k.a and generate User Agent?

标签: python python-requests


【解决方案1】:

您需要在请求的标头中添加User-Agent

import requests

headers = {'User-Agent': '[insert user agent here]'}
r = requests.get("https://gis-public.sandiegocounty.gov/arcgis/rest/services/Hosted/COVID_19_Statistics__by_ZIP_Code/FeatureServer/0/query?where=ziptext%20%3D%20%2792131%27&outFields=*&outSR=4326&f=json", headers=headers)
print(r.status_code) # Should not time out. Should return with a status code of 200.

【讨论】:

  • 我不得不生成一个假的用户代理,然后这个解决方案就奏效了。谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-07-10
  • 1970-01-01
  • 1970-01-01
  • 2011-02-26
  • 2014-10-05
  • 1970-01-01
  • 2016-11-19
  • 2018-01-04
相关资源
最近更新 更多