В настоящее время у меня есть программа, которая имеет прокси и делает запрос на получение моего IP-адреса с помощью этого прокси и возвращает его обратно в json.
Пример обратного запроса:
Got Back: {'ip': '91.67.240.45', 'country': 'Germany', 'cc': 'DE'}
Я хочу, чтобы моя программа попыталась сделать запрос по URL-адресу, и если она не получит запрос из-за того, что прокси не работает, я хочу повторить попытку 5 раз, прежде чем перейти на следующий IP-адрес .
Я думал, что этот блок except будет работать, но он не выходит из l oop, когда 5 итераций завершены, и я не уверен, почему.
Моя программа, тем не менее, работает когда прокси включен для первой попытки, так как после первой попытки он ломается, а затем переходит на следующий IP-адрес.
Вот что у меня сейчас есть:
import requests
import time
proxies = [
"95.87.220.19:15600",
"91.67.240.45:3128",
"85.175.216.32:53281",
"91.236.251.131:8118",
"91.236.251.131:8118",
"88.99.10.249:1080",
]
def sol(ip):
max_tries = 5
for i in range(1, max_tries+1):
try:
print(f"Using Proxy: {ip}")
r = requests.get('https://api.myip.com', proxies={"https": ip})
print(f"Got Back: {r.json()}")
break
except OSError:
time.sleep(5)
print(f"Retrying...: {i}")
break
for i in proxies:
sol(i)
Как я могу сделать это мой l oop имеет 5 попыток перед переходом на следующий IP-адрес.