Я написал скрипт на python для очистки запрошенного URL, сделанного через прокси.Я использовал shuffle()
в своем скрипте для случайного получения прокси.Сценарий работает хорошо в некоторой степени.Проблема с этим сценарием заключается в том, что когда он не может использовать какой-либо действительный прокси-сервер, он идет на другой url из-за цикла.Как я могу исправить свой скрипт таким образом, чтобы он пытался использовать все прокси (при необходимости) в списке, чтобы получить все urls
.
Это моя попытка:
import requests
from random import shuffle
url = "https://stackoverflow.com/questions?page={}&sort=newest"
def get_random_proxies():
proxies = ['35.199.8.64:80', '50.224.173.189:8080', '173.164.26.117:3128']
shuffle(proxies)
return iter(proxies)
for link in [url.format(page) for page in range(1,6)]:
proxy = next(get_random_proxies())
try:
response = requests.get(link,proxies={"http": "http://{}".format(proxy) , "https": "http://{}".format(proxy)})
print(f'{response.url}\n{proxy}\n')
except Exception:
print("something went wrong!!" + "\n")
proxy = next(get_random_proxies_iter())
Вывод у меня:
https://stackoverflow.com/questions?page=1&sort=newest
35.199.8.64:80
https://stackoverflow.com/questions?page=2&sort=newest
50.224.173.189:8080
something went wrong!!
https://stackoverflow.com/questions?page=4&sort=newest
50.224.173.189:8080
something went wrong!!
Вы можете видеть, что два URL 'page=3&sort=newest'
и 'page=5&sort=newest'
не отвечали, тогда как мои два прокси все еще работают.
Постскриптум: это бесплатные прокси, поэтому я намеренно их опубликовал.