urllib.error.URLError: <urlopen error unknown url type: 'https>
(Python 3.4.2) Beim Ausführen von 'urllib.request.urlopen (url)' in einem Skript ist ein seltsamer Fehler aufgetreten. Wenn ich es direkt im Python-Interpreter ausführe, funktioniert es einwandfrei, aber nicht, wenn ich es in einem Skript über eine Bash-Shell (Linux) ausführe.
Ich vermute, es hat etwas mit der 'url'-Zeichenkette zu tun, vielleicht weil ich die Zeichenkette mit der' string.join'-Methode erstelle.
import urllib.request
url = "".join((baseurl, other_string, midurl, query))
response = urllib.request.urlopen(url)
Die 'url'-Zeichenfolge wird perfekt gedruckt, aber wenn ich versuche, die' response'-Zeichenfolge zu erstellen, erhalte ich die folgende Ausgabe:
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 wurde mit SSL-Unterstützung auf meinem Computer kompiliert (diese Befehle funktionieren im Python-Interpreter perfekt).
Ich habe auch versucht, den String 'url' mit 'repr (url)' und 'str (url)' zu umschließen. Ich habe es auch versucht:
url = "".join(("'", baseurl, other_string, midurl, query, "'"))
Weiß jemand, was los ist?
-----BEARBEITEN----
Ich habe es herausgefunden. Meine URL hatte ein ":" und ich denke, dass Urllib das nicht gefallen hat. Ich habe es durch "% 3A" ersetzt und jetzt funktioniert es.