Ошибка прокси в requests Python
phone = input("Номер: ")
phone = str(phone)
proxies = {
'http':'185.221.160.60:80',
'https':'185.221.160.60:80'
}
reffer_list=[
'https://stackoverflow.com/',
'https://twitter.com/',
'https://www.google.co.in/',
'https://gem.gov.in/']
while True:
cl1 = requests.session()
cl1.get('https://api.litres.ru/foundation/api/auth/send-otp')
rSL1 = requests.post('https://api.litres.ru/foundation/api/auth/send-otp',
proxies=proxies, headers = {"Content-Type":"application/json", "Referer": random.choice(reffer_list), "Sec-Fetch-Mode":"cors", "User-Agent": random.choice(agent)},
json= {'phone': phone})
print(rSL1.text)
Ошибка: requests.exceptions.ProxyError: HTTPSConnectionPool(host='api.litres.ru', port=443): Max retries exceeded with url: /foundation/api/auth/send-otp (Caused by ProxyError('Unable to connect to proxy', OSError('Tunnel connection failed: 400 Bad Request'))) Прокси рабочий
Ответы (1 шт):
Автор решения: Forevor Base
→ Ссылка
ошибка заключается в том, что у вас не так хранятся прокси. цитирую документацию:
Если вам нужно использовать прокси, вы можете настроить отдельные запросы с помощью аргумента proxies в любом методе запроса:
import requests
proxies = {
'http': 'http://10.10.1.10:3128',
'https': 'http://10.10.1.10:1080',
}
requests.get('http://example.org', proxies=proxies)
а вашем коде просто используется "http": "1.2.3.4:56"
. из-за этого он и проваливается. вот обновленный код, который не должен выдавать ошибок:
import requests, random
phone = input("номер: ")
proxies = {
"http": "http://185.221.160.60:80",
}
reffers = [
"https://stackoverflow.com/",
"https://twitter.com/",
"https://www.google.co.in/",
"https://gem.gov.in/"
]
agent = [ # в коде его тут не было, поэтому я добавил его самостоятельно.
'1',
'2',
]
while True:
client = requests.session()
headers = {
"Content-Type": "application/json",
"Referer": random.choice(reffers),
"User-Agent": random.choice(agent)
}
json = {
"phone": phone
}
try:
with client.get("https://api.litres.ru/foundation/api/auth/send-otp", proxies=proxies, headers=headers, json=json) as response:
print(response)
except requests.exceptions.ProxyError:
print(f"прокси отвалился.")
except Exception as e:
print(e)
вместе с небольшим улучшением кода и исправления ошибки, я также добавил проверку на ошибки через try: except
(я честно не знаю как это назвать по другому).
надеюсь на то, что этот ответ вам помог.