我的python请求代理密码有标签“#”,它无法解析代理URL

问题描述 投票:0回答:1

我的代理是:'http://abc:zyx#123$@http://proxy.mycompany.com:8800/';

当我跑步时:

response = requests.get(
            url, stream=True, headers=headers, proxies=my_proxies);

我收到错误:

文件“C:\Program Files\Python�\lib\site-packages equests pi.py”,第 115 行,在帖子中 返回请求(“post”,url,data=data,json=json,**kwargs) 文件“C:\Program Files\Python�\lib\site-packages equests pi.py”,第 59 行,请求中 返回 session.request(method=method, url=url, **kwargs) 文件“C:\Program Files\Python�\lib\site-packages equests\sessions.py”,第 589 行,请求中 resp = self.send(prep, **send_kwargs) 文件“C:\Program Files\Python�\lib\site-packages equests\sessions.py”,第 703 行,发送中 r = 适配器.send(请求, **kwargs) 文件“C:\Program Files\Python�\lib\site-packages equests dapters.py”,第 456 行,发送中 引发 InvalidURL(e, request=request) requests.exceptions.InvalidURL:无法解析:http://abc:zyx#123$@http://proxy.mycompany.com:8800/

当我从密码中删除 # 时,出现以下错误:File "C:\Program Files\Python�\lib\site-packages equests pi.py”,第 115 行,在帖子中 返回请求(“post”,url,data=data,json=json,**kwargs) 文件“C:\Program Files\Python�\lib\site-packages equests pi.py”,第 59 行,请求中 返回 session.request(method=method, url=url, **kwargs) 文件“C:\Program Files\Python�\lib\site-packages equests\sessions.py”,第 589 行,请求中 resp = self.send(prep, **send_kwargs) 文件“C:\Program Files\Python�\lib\site-packages equests\sessions.py”,第 703 行,发送中 r = 适配器.send(请求, **kwargs) 文件“C:\Program Files\Python�\lib\site-packages equests dapters.py”,第 513 行,发送中 引发 ProxyError(e, 请求=请求) requests.exceptions.ProxyError:HTTPSConnectionPool(host ='api.precisely.com',port = 443):超过最大重试次数,网址:/ oauth / token(由ProxyError('无法连接到代理',NameResolutionError(“”引起) :无法解析“http”([Errno 11001] getaddrinfo 失败)“))) 按任意键继续 。 。 .

我认为密码中的 # 导致了错误,我该如何解决它?

python url python-requests
1个回答
0
投票

根据RFC 3986

userinfo
部分需要进行pct编码:

userinfo    = *( unreserved / pct-encoded / sub-delims / ":" )

这应该有效:

my_proxies = {"http": "http://abc:zyx%23123%[email protected]:8800/"}

response = requests.get(url, proxies=my_proxies)

因为

#
$
的百分比编码形式分别是
%23
%24

© www.soinside.com 2019 - 2024. All rights reserved.