["python","python-requests","httprequest","http-proxy"]
Proxies with Python 'Requests' module

About the excellent Requests module for Python: I can't seem to find in the documentation what the variable 'proxies' should contain. When I send it a dict with a standard "IP:PORT" value it rejected it asking for two values. So, I guess (because this doesn't seem to be covered in the documentation) that the first value is the IP address and the second the port? The documentation mentions this only: proxies – (optional) Dictionary mapping protocol to the URL of the proxy. So I tried this... What should I be doing? proxy = { ip: port} And should I convert these to some type before putting them in the dict? r = requests.get(url, headers=headers, proxies=proxy)
The proxies' dict syntax is {"protocol": "scheme://ip:port", ...}. With it you can specify different (or the same) proxie(s) for requests using the HTTP, HTTPS, and FTP protocols: http_proxy = "http://10.10.1.10:3128" https_proxy = "https://10.10.1.11:1080" ftp_proxy = "ftp://10.10.1.10:3128" proxies = { "http" : http_proxy, "https" : https_proxy, "ftp" : ftp_proxy } r = requests.get(url, headers=headers, proxies=proxies) Deduced from the Requests documentation: Parameters: method – method for the new Request object. url – URL for the new Request object. ... proxies – (optional) Dictionary mapping protocol to the URL of the proxy. ... On Linux, you can also do this via the HTTP_PROXY, HTTPS_PROXY, and FTP_PROXY environment variables: export HTTP_PROXY=10.10.1.10:3128 export HTTPS_PROXY=10.10.1.11:1080 export FTP_PROXY=10.10.1.10:3128 On Windows: set http_proxy=10.10.1.10:3128 set https_proxy=10.10.1.11:1080 set ftp_proxy=10.10.1.10:3128