Wie lade ich Bilder mit einer https-URL in Python 3?
Ich habe versucht, einen kurzen Masse-downloader Skript in Python zu speichern Listen der Bilder vor Ort.
Es funktioniert völlig in Ordnung für http
Bild-urls, jedoch schlägt fehl, download Bild mit einem https
url. Die code-Zeilen in Frage:
import urllib.request
urllib.request.urlretrieve(url, filename)
Beispielsweise
https://cdn.discordapp.com/attachments/299398003486097412/303580387786096641/FB_IMG_1490534565948.jpg
Ergebnisse in HTTP Error 403: Forbidden
sowie andere https
Bild.
Lässt mich mit zwei Fragen:
- Wie kann ich herunterladen, wie ein Bild mithilfe von Python?
- Warum tun die Bilder auch haben
https
- urls wenn Sie im Grunde nur die Dateien?
EDIT:
Hier ist der stack trace:
Traceback (most recent call last):
File "img_down.py", line 52, in <module>
main()
File "img_down.py", line 38, in main
save_img(d, l)
File "img_down.py", line 49, in save_img
stream = read_img(url)
File "img_down.py", line 42, in read_img
with urllib.request.urlopen(url) as response:
File "D:\Users\Jan\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "D:\Users\Jan\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 532, in open
response = meth(req, response)
File "D:\Users\Jan\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 642, in http_response
'http', request, response, code, msg, hdrs)
File "D:\Users\Jan\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 570, in error
return self._call_chain(*args)
File "D:\Users\Jan\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 504, in _call_chain
result = func(*args)
File "D:\Users\Jan\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 650, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
- Haben Sie versucht, die Lösung zu diesem Beitrag? stackoverflow.com/questions/3042757/...
- Ich habe es ausprobiert. Es wirft auch einen HTTP 403 Fehler, wenn konfrontiert mit dieser URL.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann Ihnen helfen,...
Habe ich dieses Skript, aber nie fertig (die endgültige Absicht war damit es läuft alltäglichen automatisch)
Aber nicht die Art von person, verschieben sich die Antworten, hier ist das Stück code, das Ihr Interesse:
Hoffe, es hilft!
Bearbeitet
PS: mit Python ist3
Vollständige Skript
'wb'
Teil zu machen, nicht nur beschreibbar, sondern auch Binär-Modus) und speichern der raw-Daten in esHoffe, das hilft.
Hier ist die neueste Antwort auf diese Frage, die ich verwendet habe, openCV, um Bilder zu speichern, zusammen mit Anfrage-Modul Auch, es handle batch-Operationen und können Hinzugefügt werden, wie der common code
unter Bezugnahme auf die folgenden link hier kann man vor "HTTP-Fehler 403: Verboten" Fehler auch nach der Verwendung der Lösung von @Thiago Cardoso als Es ist, weil der server nicht weiß, die Anfrage kommt. Einige websites überprüfen Sie den UserAgent, um zu verhindern, dass abnorme besuchen. So sollten Sie die Informationen von Ihrem fake-browser besuchen.
so, ich veränderte den code readimg Methode wie folgt:-