Как собственно скачать файл через прокси HTTP/SOCKS4/SOCKS5 на питоне?
Ответ
Вот пример, как можно файл скачать через socks5-прокси на Питоне 3 без monkey-patching socket модуля:
#!/usr/bin/env python3
import urllib.request
import socks # $ pip install PySocks
from sockshandler import SocksiPyHandler # from pysocks
socks_port = 9050 # tor socks5 port
opener = urllib.request.build_opener(
SocksiPyHandler(socks.PROXY_TYPE_SOCKS5, "localhost", socks_port)
)
urllib.request.install_opener(opener) #NOTE: global for the process
urllib.request.urlretrieve(url, filename)
Можно не устанавливать opener, чтобы другие соединения в том же процессе не затрагивать, а использовать его напрямую: opener.open(url)
Для http-прокси, также можно build_opener() использовать:
from urllib.request import ProxyHandler, build_opener
opener = build_opener(ProxyHandler(dict(http='host:port')))
Комментариев нет:
Отправить комментарий