gpt4 book ai didi

python-3.x - urllib.error.URLError :

转载 作者:行者123 更新时间:2023-12-04 11:05:10 56 4
gpt4 key购买 nike

(Python 3.4.2)
当我在脚本中运行 'urllib.request.urlopen(url)' 时出现一个奇怪的错误。如果我直接在 Python 解释器中运行它,它可以正常工作,但当我通过 bash shell (Linux) 在脚本中运行它时就不行了。

我猜它与 'url' 字符串有关,也许是因为我是通过 'string.join' 方法创建字符串的。

import urllib.request
url = "".join((baseurl, other_string, midurl, query))
response = urllib.request.urlopen(url)

'url' 字符串打印完美,但是当我尝试创建 'response' 字符串时,我得到以下输出:
File "./script.py", line 124, in <module>
response = urllib.request.urlopen(url)
File "/usr/lib/python3.4/urllib/request.py", line 153, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.4/urllib/request.py", line 455, in open
response = self._open(req, data)
File "/usr/lib/python3.4/urllib/request.py", line 478, in _open
'unknown_open', req)
File "/usr/lib/python3.4/urllib/request.py", line 433, in _call_chain
result = func(*args)
File "/usr/lib/python3.4/urllib/request.py", line 1244, in unknown_open
raise URLError('unknown url type: %s' % type)
urllib.error.URLError: <urlopen error unknown url type: 'https>

Python 是在我的计算机上使用 SSL 支持编译的(这些命令在 Python 解释器中完美运行)。

我也试过用 'repr(url)' 和 'str(url)' 包装 'url' 字符串。我也试过这个:
url = "".join(("'", baseurl, other_string, midurl, query, "'"))

有谁知道这是怎么回事?

- - -编辑 - - -
我想到了。我的网址中有一个“:”,我猜 urllib 不喜欢那样。我用“%3A”替换了它,现在它可以工作了。

最佳答案

您应该使用 urllib.parse.urlencode()urllib.parse.urljoin() 等函数来构建 url,而不是手动加入字符串。它将处理 : -> %3A 转换,例如:

>>> import urllib.parse
>>> urllib.parse.quote(':')
'%3A'

关于python-3.x - urllib.error.URLError : <urlopen error unknown url type: 'https>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27115803/

56 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com