使用 GeoPy Nominatim 的正确方法

Jaf*_*r.A 6 python

我是编程新手,我正在使用一个编程教程,它说要geopy像这样使用:

import pandas, os, geopy
from geopy.geocoders import Nominatim

GeoLocator = Nominatim()
Run Code Online (Sandbox Code Playgroud)

但在最后一行之后,我收到此错误:

/usr/local/lib/python3.7/site-packages/geopy/geocoders/osm.py:143: UserWarning:user_agent强烈建议不要使用 Nominatim 和默认的“geopy/1.17.0” ,因为它违反了 Nominatim 的 ToS https: //operations.osmfoundation.org/policies/nominatim/并且可能会导致 403 和 429 HTTP 错误。请user_agent使用Nominatim(user_agent="my-application")或覆盖默认值来指定自定义user_agent: geopy.geocoders.options.default_user_agent = "my-application"。在 geopy 2.0 中,这将成为一个例外。用户警告

我的问题是,我应该如何更改代码以修复此错误?

小智 6

nom = Nominatim(user_agent="http") 你必须提到你的用户代理(HTTP)它只是关于 IP 地址


And*_*ell 5

您应该指定一个 user_agent。Nominatum 服务在容量有限的捐赠服务器上运行,因此指定用户代理字段允许 Open Street Map 更轻松地跟踪谁在使用他们的服务。有关更详细的答案,请参见此处。

如果您不这样做,他们可能会阻止您的 IP 地址访问该服务,因为这将违反他们的服务条款。