Современные версии requests
поддерживают готовые прокси-серверы HTTP (S), а также SOCKS-прокси . Однако последние являются «дополнительной функцией, которая требует установки дополнительных сторонних библиотек перед использованием». PySocks - подходящая сторонняя библиотека для всех POSIX-подобных платформ, с которыми я знаком.
Я создаю приложение, которое использует requests
с настраиваемым пользователем прокси, и пытается выяснить, как проверить, будут ли прокси SOCKS поддерживаться локальной установкой requests
.
Насколько я могу судить, API requests
не содержит встроенной функции. чтобы проверить эту поддержку, но когда библиотека пытается использовать прокси SOCKS5, она вызовет исключение InvalidSchema("Missing dependencies for SOCKS support.")
.
Я придумала следующее заклинание, чтобы попробовать чтобы проверить, поддерживает ли requests
прокси-серверы SOCKS перед их использованием…
try:
requests.adapters.SOCKSProxyManager('socks5://')
have_socks = True
except requests.exceptions.InvalidSchema:
have_socks = False
Кажется, это работает правильно (проверено с requests
2.22.0), но не выглядит особенно перспективным.
Есть ли лучший (более простой, безопасный, более перспективный) способ проверки поддержки SOCKS в requests
перед ее использованием?