HTTP 错误 429:python geopy 的请求过多
HTTP Error 429: Too Many Requests by python geopy
我有一个问题,我不确定如何解决。我想遍历一个文件,我想在其中将坐标转换为地理定位 address.The 代码工作正常,但是在它遍历文件中一定数量的行后,问题就出现了。
from __future__ import print_function
from geopy.geocoders import Nominatim
from shapely.wkt import loads as load_wkt
from shapely.geometry import Point, Polygon
import io
import re
import ast
import time
geolocator = Nominatim()
with io.open('sample_test2.txt', encoding="utf-8") as f, io.open('sample_test3.txt', 'w',encoding="utf-8") as g:
for line in f:
m = re.sub(r'(70[0-9]+,).*', r'', line.rstrip())
z = re.sub(r'.*POINT \([0-9]+.[0-9]+ -[0-9]+.[0-9]+\)(.*)', r'', line.rstrip())
c = re.sub(r'.*POINT \(([0-9]+.[0-9]+) (-[0-9]+.[0-9]+)\).*', r'", "', line.rstrip())
k = ast.literal_eval(c)
location = geolocator.reverse(k, timeout=60)
h = location.address
j = re.sub(r'.*, ([^,]+, [^,]+), [0-9]+, United.*', r'', h.rstrip())
print (m, j, z, file = g)
f.close()
g.close()
现在我从其他一些问题中了解到我应该使用 time.sleep()
。现在我想把它放在 print
之前。我第一次 运行 我的代码(没有 time.sleep()
),他在收到此错误之前转换了大约 1800 行:
raise GeocoderServiceError(message)
geopy.exc.GeocoderServiceError: HTTP Error 429: Too Many Requests
但是现在有或没有 time.sleep()
它甚至不执行第一行它只是从一开始就因错误而中断。知道该怎么做吗?
看起来您使用的任何网络服务都阻止了您,很可能是通过您的 IP 地址。稍等片刻,然后确保您正在 "friendly" 访问该服务,例如,通过插入这些睡眠。
我有一个问题,我不确定如何解决。我想遍历一个文件,我想在其中将坐标转换为地理定位 address.The 代码工作正常,但是在它遍历文件中一定数量的行后,问题就出现了。
from __future__ import print_function
from geopy.geocoders import Nominatim
from shapely.wkt import loads as load_wkt
from shapely.geometry import Point, Polygon
import io
import re
import ast
import time
geolocator = Nominatim()
with io.open('sample_test2.txt', encoding="utf-8") as f, io.open('sample_test3.txt', 'w',encoding="utf-8") as g:
for line in f:
m = re.sub(r'(70[0-9]+,).*', r'', line.rstrip())
z = re.sub(r'.*POINT \([0-9]+.[0-9]+ -[0-9]+.[0-9]+\)(.*)', r'', line.rstrip())
c = re.sub(r'.*POINT \(([0-9]+.[0-9]+) (-[0-9]+.[0-9]+)\).*', r'", "', line.rstrip())
k = ast.literal_eval(c)
location = geolocator.reverse(k, timeout=60)
h = location.address
j = re.sub(r'.*, ([^,]+, [^,]+), [0-9]+, United.*', r'', h.rstrip())
print (m, j, z, file = g)
f.close()
g.close()
现在我从其他一些问题中了解到我应该使用 time.sleep()
。现在我想把它放在 print
之前。我第一次 运行 我的代码(没有 time.sleep()
),他在收到此错误之前转换了大约 1800 行:
raise GeocoderServiceError(message)
geopy.exc.GeocoderServiceError: HTTP Error 429: Too Many Requests
但是现在有或没有 time.sleep()
它甚至不执行第一行它只是从一开始就因错误而中断。知道该怎么做吗?
看起来您使用的任何网络服务都阻止了您,很可能是通过您的 IP 地址。稍等片刻,然后确保您正在 "friendly" 访问该服务,例如,通过插入这些睡眠。