我使用curl通过代理连接到https网页,具体来说就是这个命令:
curl --proxy https://PROXY_IP:80 -PROXY_USERNAME:PROXY_PASSWORD -k -L https://www.rotogrinders.com
你知道如何在Python 3中做同样的事情吗?我尝试了请求库,但它没有用,可能是因为https通过代理在请求中被窃听。
编辑:请求代码:
import requests
from requests.auth import HTTPProxyAuth
class Downloader:
def get_page(self, url):
proxies = self.get_proxies()
auth = HTTPProxyAuth("PROXY_USERNAME", "PROXY_PASSWORD")
r = requests.get(url, proxies = proxies, auth = auth)
return r.text
def get_proxies(self):
return {"https" : "PROXY_IP:80"}
downloader = Downloader()
downloader.get_page("https://www.rotogrinders.com")
此代码返回以下异常:
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='www.rotogrinders.com', port=443): Max retries exceeded with url: / (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required',)))