(Python的3.4.2)当我运行“urllib.request.urlopen(URL)”的脚本里面我有一个奇怪的错误。 如果我直接在Python解释器中运行它,它工作正常,但不是当我经过的bash shell(Linux)的运行的脚本里面。
我猜它是与“网址”字符串,也许是因为我创建通过“的string.join”方法的字符串。
import urllib.request
url = "".join((baseurl, other_string, midurl, query))
response = urllib.request.urlopen(url)
“网址”字符串打印完美,但是当我尝试创建“响应”的字符串,我得到这样的输出:
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解释器完美地工作)编制。
我也试着用包装“再版(URL)”和“STR(URL)”“网址”字符串。 我已经试过这太:
url = "".join(("'", baseurl, other_string, midurl, query, "'"))
任何人都知道这是怎么回事?
- - -编辑 - - -
我想到了。 我的网址有一个“:”在里面,我想的urllib不喜欢这一点。 我用“%3A”代替它,现在它的工作。