![](/img/trans.png)
[英]Python requests API using proxy for https request get 407 Proxy Authentication Required
[英]Python-requests, HTTPS proxy authentication <407 Proxy Authentication Required>
我遇到了这个问题几天,但我不知道如何解决它:假设我必须连接到https://targetwebsite.com
,它只能通过具有身份验证的代理服务器访问,并且我会喜欢向这个网站发出 python 请求。 到目前为止,我所做的是:
import requests
from requests.auth import HTTPProxyAuth
session = requests.Session()
session.proxies = {'http': 'proxy_url:port'}
session.auth = HTTPProxyAuth('proxy_username', 'proxy_password')
session.get('https://targetwebsite.com')
>> <Response [404]>
它不使用代理,事实上,如果我尝试通过 API 获取 IP,结果是我获取了当前的 IP 地址而不是代理的 IP
...
session.get('https://api.ipify.org/?format=json')
>> <Response [200]>
>> {"ip":"XXX.XXX.XXX.XX"} // IP address of my machine
但是,如果我向同一个网站发出请求,但通过http
它可以工作:
session.get('http://targetwebsite.com')
>> <Response [200]>
我不得不说我正在使用我创建的代理服务器,它通过 Squid 托管在树莓派上,所以也许我配置它是错误的,但是我认为这不是问题,因为当我使用相同的与 Firefox 具有相同凭据的代理我也可以通过https
访问网站。
正如有人建议我也尝试了不同的配置,结果如下:
...
session.proxies = {'http': 'proxy_url:port', 'https': 'proxy_url:port'}
session.get('https://targetwebsite.com')
>> <407 Proxy Authentication Required>
...
session.proxies = {'https': 'proxy_url:port'}
session.get('https://targetwebsite.com')
>> <407 Proxy Authentication Required>
您需要指定 HTTPS 代理:
session.proxies = {'https': 'proxy_url:port'}
然后会话可以用于访问HTTPS目标,这是当今的所有目标。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.