Проблемы при подключение к прокси
ВКонтакте заблокирован на территории Украины. В связи с этим нужно использовать прокси. Но проблема в том, что ничего не работает. Что я делаю не так?
Окружение
vk_api: 11.8.0
API: 5.95
Пример
vk = vk_api.VkApi(token = token, api_version = 5.95)
vk.http.proxies = {"http": "http://149.28.148.91:8080", "https": "http://149.28.148.91:8080"}
longpoll = VkLongPoll(vk)
Ошибка, которая возникает
requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='im.vk.com', port=443): Max retries exceeded with url: /nim195179702?version=3&wait=25&mode=234&act=a_check&key=524ab94126f97666b8ea5256505388ecede83a25&ts=1854385594 (Caused by ConnectTimeoutError(<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0xb6a124ac>, 'Connection to im.vk.com timed out. (connect timeout=35)'))
Это не ошибка апи, видно же что ошибка идёт с библиотеки requests. Ваша проблема только в вашем прокси, то ли прокси сервер не включен, то ли у него нет доступа к вк. Ищите другой прокси
Я проверил на 8 прокси и ошибка не исчезла.
точно такая же ошибка при использовании валидных прокси.
vk_session.http.proxies ={ 'http': 'http://user:password@proxyip:port, 'https': 'http://user:password@proxyip:port' }
причем все обычные запросы апи работают отлично в том числе и messages (app_id spoof). но вот VkLongPool бросает ошибку как у ТС
requests.exceptions.ProxyError: HTTPSConnectionPool(host='api.vk.com', port=443): Max retries exceeded with url: /method/messages.getLongPollServer (Caused by ProxyError('Cannot connect to proxy.', RemoteDisconnected('Remote end closed connection without response')))
большая просьба сделать фикс или подсказать, где косячу
File "/Users/mac1/PycharmProjects/TestVkApi/VkApiMain.py", line 95, in <module>
main()
File "/Users/mac1/PycharmProjects/TestVkApi/VkApiMain.py", line 55, in main
for event in longpoll.listen():
File "/Users/mac1/PycharmProjects/TestVkApi/venv/lib/python3.7/site-packages/vk_api/longpoll.py", line 621, in listen
for event in self.check():
File "/Users/mac1/PycharmProjects/TestVkApi/venv/lib/python3.7/site-packages/vk_api/longpoll.py", line 582, in check
self.update_longpoll_server(update_ts=False)
File "/Users/mac1/PycharmProjects/TestVkApi/venv/lib/python3.7/site-packages/vk_api/longpoll.py", line 531, in update_longpoll_server
response = self.vk.method('messages.getLongPollServer', values)
File "/Users/mac1/PycharmProjects/TestVkApi/venv/lib/python3.7/site-packages/vk_api/vk_api.py", line 612, in method
values
File "/Users/mac1/PycharmProjects/TestVkApi/venv/lib/python3.7/site-packages/requests/sessions.py", line 578, in post
return self.request('POST', url, data=data, json=json, **kwargs)
File "/Users/mac1/PycharmProjects/TestVkApi/venv/lib/python3.7/site-packages/requests/sessions.py", line 530, in request
resp = self.send(prep, **send_kwargs)
File "/Users/mac1/PycharmProjects/TestVkApi/venv/lib/python3.7/site-packages/requests/sessions.py", line 643, in send
r = adapter.send(request, **kwargs)
File "/Users/mac1/PycharmProjects/TestVkApi/venv/lib/python3.7/site-packages/requests/adapters.py", line 510, in send
raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPSConnectionPool(host='api.vk.com', port=443): Max retries exceeded with url: /method/messages.getLongPollServer (Caused by ProxyError('Cannot connect to proxy.', RemoteDisconnected('Remote end closed connection without response')))
@JackButland Тут скорее проблема в авторизации, у меня с авторизацией тоже не работало. Попробуйте взять с бесплатного сайта https проксю, попробуйте на нескольких. Опять же, может зависить от типа прокси, может у вас socks4/5, нужно https. upd: Ещё заметил что в вашей строчке вы в http.proxies там где https вставляете http://, это тоже вполне может быть проблемой, т.к. у http 80 порт подключения, а у https 443. Vk использует https, в этом и проблема
Возникла аналогичная ошибка, при использовании прокси. Использовал платные прокси, которые точно работают. Прокси добавлял в таком формате:
http://login:password@proxu_ip:port
s = Session()
s.proxies = ({'http': proxy_http, 'https': proxy_https})
vk_group_token = env('VK_API_KEY')
vk_session = vk_api.VkApi(token=vk_group_token, session=s)
longpoll = VkLongPoll(vk_session)
Получаю -
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='im.vk.com', port=443): Max retries exceeded with url:
бла-бла -бла
(Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x107a26df0>: Failed to establish a new connection: [Errno 61] Connection refused')
Подскажите, что я делаю не так?
Так понимаю никак не решил никто?
вк работает только через https и если прокси http то апи их просто игнорирует, потому что опирается на requests, в которых https коннектится только через https. Можно проверять так:
proxies = {
'https': 'https://адрес:порт'
}
r = requests.get('https://icanhazip.com', proxies=proxies)
print(r.content)