Seite 2 von 3

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 08:18
von snafu
xXSkyWalkerXx1 hat geschrieben: Samstag 30. November 2019, 22:12 Ich glaube er sollte sich erstenmal über die Grundlagen von Python, sowie über das Modul "requests" und, von jackblack bereits erwähnt, das "csv" Modul informieren.
Der Britta Baumgart sollte auf jeden Fall auch den Dateinamen des Python-Skripts mit angeben. Ansonsten weiß Python nämlich nicht, was es mit der CSV-Datei tun soll.

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 11:37
von gonzo900
Guten Morgen....und einen schönen ersten Advent

für mich sind das halt echt, wie eingangs schon geschrieben, böhmische Dörfer......sorry :-(

Wahrscheinlich ist es so, dass ich mich hier grad zum ersten und einzigen mal in meinem Leben mit diesem Thema befassen muss.
Ich brauche diese Technik nur für diesen konkreten, recht eiligen Fall (der Bildersicherung). Von daher kann ich mir schwer Grundlagen etc aneignen.
Leider auch niemanden hier vor Ort habe, der sich damit auskennt, wehalb ich hier gelandet bin.

Könnt Ihr es vielleicht noch einmal versuchen, mir in einfachen Worten zu erklären?

Ich habe mir python3 auf dem Mac installiert
ich habe auf dem Desktop einen Ordner (Bildersicherung) erstellt.
In diesem Ordner (Bildersicherung) befinden sich die Export-Datei (export1.csv), die .py-Datei (Tool1.py) mit dem von __deets__ korrigierten Code und ein Unterordner (Bilder)

LG Britta

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 11:44
von __deets__
Es sind DREI Dinge hinzuschreiben.

- python. Weil es ein Python Programm ist.
- skriptname.py , weil Python wissen muss, welchen Code es ausführen muss. ACHTUNG: skriptname.py muss DEIN Name sein.
- Dateiname.csv oder wie auch immer es bei dir heißt. Denn das Programm muss ja nun auch wissen, WELCHE Daten es verarbeiten soll.

Also unter der Annahme das deine Angaben korrekt sind, und du im Terminal in den Ordner gewechselt hast, in dem das alles bereit liegt:

Code: Alles auswählen

python Tool.py export1.csv
Und dann wird das Ding mit einer neuen Fehlermeldung abschmieren, weil es versucht die Bilder an der falschen Stelle abzulegen. Das hat auch der ursprüngliche Experte verhauen. Dazu muss dann vorher noch

"/Bilder/"

abgeändert werden zu

"Bilder/"

ohne führenden /.

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 11:49
von gonzo900
__blackjack__ hat geschrieben: Samstag 30. November 2019, 23:02 @gonzo900: Und das ist immer noch falsch. Das besteht aus *drei* Teilen. Dem Programm das ausgeführt werden soll (Python), der Python-Datei die von Python ausgeführt werden soll, und dem Dateinamen der CSV-Datei.
Hallo @__blackjack__

das habe ich doch probiert :?

Eingabe im Terminal: python3 Tool1.py /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv

"python3" ist das auszuführende Programm
"Tool1.py" die von python3 auszuführende Python-Datei
"/Users/brittabaumgart/Desktop/Bildersicherung/export1.csv" ist der Pfad zur Export-Datei

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 11:52
von __deets__
Unfug. Du hast das hier oben geschrieben:

Code: Alles auswählen

Die Fehlermeldung ist:

Last login: Sat Nov 30 18:33:45 on ttys000
Brittas-iMac:~ brittabaumgart$ python3 /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv
File "/Users/brittabaumgart/Desktop/Bildersicherung/export1.csv", line 1
Wo bitte steht da Tool.py? Und die Fehlermeldung ist auch passend dazu, Python alleine kann dein CSV nunmal nicht lesen.

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 12:01
von gonzo900
__deets__ hat geschrieben: Sonntag 1. Dezember 2019, 11:52 Unfug. Du hast das hier oben geschrieben:

Code: Alles auswählen

Die Fehlermeldung ist:

Last login: Sat Nov 30 18:33:45 on ttys000
Brittas-iMac:~ brittabaumgart$ python3 /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv
File "/Users/brittabaumgart/Desktop/Bildersicherung/export1.csv", line 1
Wo bitte steht da Tool.py? Und die Fehlermeldung ist auch passend dazu, Python alleine kann dein CSV nunmal nicht lesen.
Das war eine der vielen ausprobierten Varianten, weil ich gestern bereits ziemlich durcheinander mit allem war.... :?

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 12:37
von snafu
gonzo900 hat geschrieben: Sonntag 1. Dezember 2019, 11:49 Eingabe im Terminal: python3 Tool1.py /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv

"python3" ist das auszuführende Programm
"Tool1.py" die von python3 auszuführende Python-Datei
"/Users/brittabaumgart/Desktop/Bildersicherung/export1.csv" ist der Pfad zur Export-Datei
Das sieht erstmal ganz gut aus, sofern die Pfadangaben stimmen. Klappt es denn jetzt?

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 12:42
von gonzo900
snafu hat geschrieben: Sonntag 1. Dezember 2019, 12:37
gonzo900 hat geschrieben: Sonntag 1. Dezember 2019, 11:49 Eingabe im Terminal: python3 Tool1.py /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv

"python3" ist das auszuführende Programm
"Tool1.py" die von python3 auszuführende Python-Datei
"/Users/brittabaumgart/Desktop/Bildersicherung/export1.csv" ist der Pfad zur Export-Datei
Das sieht erstmal ganz gut aus, sofern die Pfadangaben stimmen. Klappt es denn jetzt?
Hallo @snafu

leider nein :

Last login: Sun Dec 1 12:41:22 on ttys000
Brittas-iMac:~ brittabaumgart$ python3 Tool1.py /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv
/Library/Frameworks/Python.framework/Versions/3.8/bin/python3: can't open file 'Tool1.py': [Errno 2] No such file or directory
Brittas-iMac:~ brittabaumgart$

:((

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 12:46
von __deets__
Wenn du den vollen Pfad zur CSV Datei angibst, und Tool.py daneben liegt - wieso glaubst du es klappt OHNE da den vollen Pfad anzugeben? Auch der muss vollständig sein. Oder du wechselst mit ‚cd ~/Desktop/Bildersicherung‘ erstmal ins passende Verzeichnis.

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 12:50
von gonzo900
__deets__ hat geschrieben: Sonntag 1. Dezember 2019, 12:46 Wenn du den vollen Pfad zur CSV Datei angibst, und Tool.py daneben liegt - wieso glaubst du es klappt OHNE da den vollen Pfad anzugeben? Auch der muss vollständig sein. Oder du wechselst mit ‚cd ~/Desktop/Bildersicherung‘ erstmal ins passende Verzeichnis.
Das weiß ich nicht, wie gesagt, absolut null Ahnung davon :-(

Ich habe es jetzt so gemacht:

python3 /Users/brittabaumgart/Desktop/Bildersicherung/Tool1.py /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv


Fehlermeldung:


Last login: Sun Dec 1 12:41:39 on ttys000
Brittas-iMac:~ brittabaumgart$ python3 /Users/brittabaumgart/Desktop/Bildersicherung/Tool1.py /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv
Traceback (most recent call last):
File "/Users/brittabaumgart/Desktop/Bildersicherung/Tool1.py", line 16, in <module>
value, params = cgi.parse_header(blah)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/cgi.py", line 226, in parse_header
parts = _parseparam(';' + line)
TypeError: can only concatenate str (not "NoneType") to str
Brittas-iMac:~ brittabaumgart$

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 12:51
von __deets__
Fortschritt! Das Skript geht halt nicht. Aber das ist der nächste Schritt. Ich schaue mir das mal an.

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 13:02
von gonzo900
__deets__ hat geschrieben: Sonntag 1. Dezember 2019, 12:51 Fortschritt! Das Skript geht halt nicht. Aber das ist der nächste Schritt. Ich schaue mir das mal an.
Dankeschön :-)

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 13:12
von __deets__
So. Das hier tut, aber ich musste diverse Aenderungen machen, und es gibt einen schwierigen Zwischenschritt. Hier erstmal das Skript:

Code: Alles auswählen

import csv
import urllib.request
from urllib.request import urlopen
import cgi
import sys
import os

with open(sys.argv[1]) as csvfile:
    bilder_path = sys.argv[2]
    reader = csv.reader(csvfile, delimiter=';', quotechar='|')
    for row in reader:

        fileurl = row[0] #Link zum Herunterladen (Muss http, nicht https)
        filepos = row[1] #erstes zweites oder drittes bild

        remotefile = urlopen(fileurl)
        info = remotefile.info()
        filename = fileurl.split("/")[-1]
        filename = f"{filepos}-{filename}"
        urllib.request.urlretrieve(fileurl, os.path.join(bilder_path, filename))
        print("finished", filename)

ACHTUNG: das schlaegt fehl, weil die Zertifikate von Python fehlen

Dazu musst du im Finder den Ordner "Python 3.8" finden, und darin das "Install Certificates.command" starten. Das oeffnet ein Fenster, und nach ein paar Sekunden tut das nix mehr und kann geschlossen werden.

Aufzurufen jetzt bitte so:

Code: Alles auswählen

python3 /Users/brittabaumgart/Desktop/Bildersicherung/Tool1.py /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv /Users/brittabaumgart/Desktop/Bildersicherung/

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 13:17
von __deets__
Ich hab's vergessen zu erwaehnen, darum nochmal: ich erwarte jetzt explizit das Verzeichnis, in dem die Bilder landen sollten. Auch das war vorher kaputt. Es muessen also "python skript.py csv-datei verzeichnis" angegeben werden!!!!!

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 13:19
von gonzo900
__deets__ hat geschrieben: Sonntag 1. Dezember 2019, 13:17 Ich hab's vergessen zu erwaehnen, darum nochmal: ich erwarte jetzt explizit das Verzeichnis, in dem die Bilder landen sollten. Auch das war vorher kaputt. Es muessen also "python skript.py csv-datei verzeichnis" angegeben werden!!!!!
Das Zielverzeichnis soll sein:

/Users/brittabaumgart/Desktop/Bildersicherung/Bilder

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 13:20
von __deets__
Dann gib das halt an, ich habe oben hingeschrieben wie es sein muss.

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 13:21
von gonzo900
Hi @__deets__

die Zertifikate scheinen abgeschlossen zu sein:

Last login: Sun Dec 1 12:48:39 on ttys000
Brittas-iMac:~ brittabaumgart$ /Applications/Python\ 3.8/Install\ Certificates.command ; exit;
-- pip install --upgrade certifi
Collecting certifi
Downloading https://files.pythonhosted.org/packages ... ne-any.whl (156kB)
|████████████████████████████████| 163kB 1.2MB/s
Installing collected packages: certifi
Successfully installed certifi-2019.11.28
WARNING: You are using pip version 19.2.3, however version 19.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
-- removing any existing file or link
-- creating symlink to certifi certificate bundle
-- setting permissions
-- update complete
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
Deleting expired sessions...none found.

[Prozess beendet]

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 13:23
von gonzo900
python3 /Users/brittabaumgart/Desktop/Bildersicherung/Tool1.py /Users/brittabaumgart/Desktop/Bildersicherung/export1.csv /Users/brittabaumgart/Desktop/Bildersicherung/Bilder

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 13:23
von __deets__
Na dann. Es sollte Dateinamen ausspucken.

Re: Bilder einer Liste mit URL automatisch downloaden

Verfasst: Sonntag 1. Dezember 2019, 13:23
von gonzo900
Es funktioniert :-)

Super!!!!

Ganz ganz lieben Dank Euch allen!!!