Zum Tool: Um mal für etwas Klarheit zu sorgen - Die Grundfunktion des Tools besteht ich denke aus den unten eingefügten Zeilen, d. h. für eine URL zu einer Datei wird der Download dieser Datei erledigt, was man auch mit dem request-Modul machen könnte, aber ich hatte irgendwoher ein anderes sniplet. Das Tool selbst ist größer, weil es für die URL zu einer HTML-Seite alle dort verlinkten PDF-Dateien erfasst, die Datei-URLs ausliest, einen Ordner auf der Platte anlegt, dort die Dateien reinspeichert und dabei noch den Dateinamen anpasst. Hat heute funktioniert und eine sehr, sehr große Menge an PDF-Dateien (> 1.000) gespeichert. Das Tool hat einige Zeit - mit Aussetzern - gearbeitet. (Mehr ins Detail gehen möchte ich da bei der Quelle und den Dateien nicht - ich bin mir nicht sicher, ob der Webseitenbetreiber mit dieser Art des Zugriffes gerechnet hat; robots.txt ist OK und die Website ist öffentlich zugänglich und auf Hochlast getrimmt, wenn ich das als Laie beurteilen kann.)
Zum Quellcode: Ich habe mir gerade noch mal die Importe angesehen und ich kann definitiv ausschließen, dass größere Teile des Tools von mir stammen, ich kann aber auch nicht mehr sagen, von wo ich es
geklaut oder anders gesagt zusammengestückelt habe. Einige der Methoden sind komplett fremder Code; die "Verbindungen" lesen sich mehr nach meinem Programmierstil, d. h. einfach und wenig elegant.
U. a. sind da solche Sachen im Quellcode (und zusätzlich einiges mit dem re-Modul):
Code: Alles auswählen
with urllib.request.urlopen(url) as response, open(dateiname, 'wb') as out_file:
shutil.copyfileobj(response, out_file)
Vielleicht von
da. Beim Rest kriege ich das nicht mehr zusammen.
@BlackJack: Die Erklärung hat mir weitergeholfen, ich hatte das mit garbage collection unter Python nicht bewusst auf dem Schirm und hatte heute dann eine Änderung vorgenommen, die das Problem löste (im Konstruktor). Ich denke, dass ich die Software mal bei Gelegenheit neu schreibe.