Есть код, который выбирает данные из Openstreet Nominatim Api.URL-адреса являются динамическими, то есть широта и долгота динамически передаются из базы данных один за другим, и данные также выбираются один за другим. Однако, если это занимает много времени, попытался сделать его многопроцессным, и пример приведен ниже:
liste = [https://nominatim.openstreetmap.org/reverse.php?format=json&lat="+lat+"&lon="+lng+"&zoom=16&accept-language=en;q=0.8,.. ,..,..]
def get_url(url):
Operations
.
.
r = request.get(url)
value = r.json()
pool = Pool(processes=8)
results = pool.map(get_url,liste)
Однако сайт openstreet блокирует меня, поскольку существует ограничение на 1 запрос в секунду, поэтому я попытался использовать функцию прокси в запросах:
proxies = [ip:port,ip:port,ip:port,ip:port...]
liste = [https://nominatim.openstreetmap.org/reverse.php?format=json&lat="+lat+"&lon="+lng+"&zoom=16&accept-language=en;q=0.8,.. ,..,..]
def get_url(url):
ma_list = ['http://'+x for x in proxies]
proxyDict = {"http" : ma_list}
headers = ''
r = requests.get(url,headers=headers, proxies=proxyDict)
value = r.json()
r = request.get(url)
value = r.json()
pool = Pool(processes=8)
results = pool.map(get_url,liste)
Так что я пытаюсь сделатьЕсли список из 10 прокси-серверов существует, динамические URL-адреса обрабатываются разными ips каждый раз, даже если в секунду выполняется 4 запроса, они выполняются с различными прокси-серверами (в основном циклически перебирается список прокси).
но я всегда получаю сообщение об ошибке:
[MaX retries exceeded with url:]
Я что-то не так делаю или это невозможно?