Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

CSV Dateien herunterladen mit VBA

Forumthread: CSV Dateien herunterladen mit VBA

CSV Dateien herunterladen mit VBA
22.03.2025 21:56:14
Christian
Hallo,

ich würde euch um eure Hilfe bitten. Ich kann mir schon denken, dass das nicht das Einfachste Unterfangen ist, aber es würde mich freuen, wenn es doch eine Lösung gibt.
Ich habe ein bestehendes (und funktionierendes) Makro, dass Abfragen mit CSV Dateien als Quelle aktualisiert und die Daten dann weiterverarbeitet.

Bislang muss ich allerdings die CSV Dateien händig herunterladen und umbenennen.
Hierzu gehe ich hin, öffne eine Liste bei IMDB, nehme jetzt mal als Beispiel diese

https://www.imdb.com/list/ls060315772/?ref_=nm_urls_2

klicke oben rechts auf exportieren, dann in dem sich öffnenden Fenster auf Exportseite öffnen, warte dann ab bis der Download bereit ist und klicke dann auf Bereit zum Herunterladen. Danach gebe ich der Datei noch den passenden Namen.

Wie ich eingangs sagte, kann das auch ein VBA Script übernehmen?

Danke
Christian
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CSV Dateien herunterladen mit VBA
22.03.2025 22:07:51
Eifeljoi 5
Hallo

Nicht mit VBA, so könnte der M-Code für mit PQ aussehen.
let in

Table.TransformColumnTypes(Html.Table(Web.BrowserContents("https://www.imdb.com/list/ls060315772/?ref_=nm_urls_2"), {{"Column1",
".ipc-title-link-wrapper *"}, {"Column2", ".sc-ab9eb9db-0"}, {"Column3", ".sc-77f37b3d-2 .ipc-html-content-inner-div"}, {"Column4",
".ipc-bq *"}, {"Column5", ".sc-7c95f518-5:nth-child(2)"}, {"Column6", ".ipc-md-link:nth-child(1)"}, {"Column7",
".ipc-md-link:nth-child(2)"}, {"Column8", ".ipc-md-link:nth-child(3)"}, {"Column9", ".sc-7c95f518-5:nth-child(1)"}, {"Column10",
".sc-7c95f518-5:nth-child(3)"}, {"Column11", ".ipc-md-link:nth-child(4)"}, {"Column12", ".ipc-md-link:nth-child(5)"}, {"Column13",
".ipc-md-link:nth-child(6)"}, {"Column14", ".ipc-md-link:nth-child(7)"}}, [RowSelector=".ipc-metadata-list-summary-item"]),
{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text},{"Column6",
type text}, {"Column7", type text}, {"Column8", type text}, {"Column9", type text}, {"Column10", type text},{"Column11",type text},
{"Column12", type text}, {"Column13", type text}, {"Column14", type text}})
Anzeige
Gibt es da keine Lösung? Owt
24.03.2025 10:11:56
Christian
AW: CSV Dateien herunterladen mit VBA
24.03.2025 14:51:10
Yal
Hallo Christian,

das ist eine Web-Scrapping-Aufgabe. Entweder hat man sehr gutes Kenntnisse und Erfahrung in http-Steuerung in VBA oder man verwendet das Selenium-Framework.
Es gibt einen guten Tutorial bei wise-owl: https://www.wiseowl.co.uk/vba-macros/videos/vba-scrape-websites/selenium-get-started/

Das Umbenennen von Dateien würde ich mit dem FSO-Library machen. Bzw. das File-Objekt
https://learn.microsoft.com/de-de/office/vba/language/reference/user-interface-help/filesystemobject-object
https://learn.microsoft.com/de-de/office/vba/language/reference/user-interface-help/file-object

VG
Yal
Anzeige
AW: CSV Dateien herunterladen mit VBA
24.03.2025 15:40:00
Christian
Hallo Yal,

erstmal danke für deine Antwort,

ich fürchte nur, hier liegt ein Misverständnis vor. Mein Anliegen war es, die zu Beginn genannten Schritte, die ich händig auf der IMDB Seite ausführe, zu automatisieren.
Nicht diese Schritte ad acta zu legen und die Daten per Webscraping auszulesen.

Wir reden im Original (das war ja nur ein Beispiel) von Daten zu 40.000 Schauspielern und 30.000 Filmen, das würde ja in keinem Verhältnis stehen, wenn ein Script, ob jetzt mit PQ, VBA oder Selenium sich die Daten einzeln zusammensucht, im Ernstfall 70.000 Seiten durchsucht und gleichzeitig IMDB mit der Exportfunktion die Möglichkeit bietet, dass IMDB es macht.

Wie gesagt, mir ging es nur darum den Export anzustoßen, die Datei runterzuladen und ihr den Namen zu geben, der in der PQ Abfrage, die die Daten weiterverarbeitet, hinterlegt ist.

Alles andere ist ja schon gegeben und muss nicht mühsam durch Webscraping zusammengekratzt werden.

Gruß
Christian
Anzeige
AW: CSV Dateien herunterladen mit VBA
24.03.2025 17:43:54
Yal
Hallo Christian,

vielleicht Mistverständnis, aber nicht meinerseits: Webscrapping bezeichnet u.a. das Lesen von Daten auf einer Webseite, aber auch das Simulieren von Klicks, um auf einer Webseite eine Aktion anzustossen.

Dementsprechend ist der Weg über Werkzeuge, die diese Klicks simulieren können. Ich kenne selber nur 2, es sind aber mehr:
- das Microsoft-Dokumentmodell und die HTTP-Request einerseits: toll, weil direkt in VBA, aber extrem anstrengend, weil eher für C# geschrieben als für VBA,
- Selenium Framework anderseits: wesentlich nachvollziehbarer, aber nicht in 3 Minuten erklärt. Daher wiseowl.

Du brauchst diese Werkzeuge, um die Klicks zu simulieren. Dann ist die Frage, wenn man schon das Ding im Einsatz hat, weil es eben nicht anders geht, ob es nicht einfacher wäre, die Daten zu lesen und in gewünschte Struktur abzulegen, anstatt eine Datei runterzuladen, die man noch verarbeiten muss. Aber das musst Du selber abwegen.

Ich hatte selber die Erfahrung, dass eine heruntergeladene Datei nur einen Teil der relevanten Daten lieferte und noch dazu in einer total vermurkste Struktur (es war wohl Ziel des Anbieters, die Datenwiederverwendung zu erschweren). Daher war der direkte Scrapping (jetzt in Sinne der direktes lesen aus der Webseite) schneller, genauer und vollständiger.

VG
Yal
Anzeige
AW: CSV Dateien herunterladen mit VBA
24.03.2025 19:06:04
Christian
Hallo Yal,

dann war es wohl ein Misverständnis meinerseits. Ich habe einfach scrapen ins Deutsche übersetzt, also z.b. auslesen und bin dann davon ausgegangen, dass damit so etwas gemeint war, wie schon in Eifeljois Vorschlag geschehen.

Ich habe vor langer Zeit mal so etwas ähnliches versucht meine es war sogar mit Selenium (und Hilfe von Chatgpt) und zwar Daten aus Excel in das Formular einzutragen, mit dem diese Listen erstellt werden.

Hatte auch mit 4-5 Einträgen geklappt, dann hat IMDB geblockt.

Ich wünsche mir die alte IMDB Seite zurück, wo hinter dem Klick auf Export noch eine URL stand, die man mit VBA öffnen konnte und schwupps war die Datei heruntergeladen.

Deine Frage was einfacher ist. Diese Frage kann ich dir in meinem Fall beantworten. Sicherlich geht es schneller, den Download von 7 Dateien (Max 1 MB pro Datei) zu starten, als Inhalte von 70000 Seiten auszulesen. Außerdem sämtliche Prozesse zur Verarbeitung der Dateien existieren ja bereits ab dem Punkt, an dem die Dateien heruntergeladen und umbenannt sind.
Man müsste sie also nicht an neue Gegebenheiten anpassen.

Die heruntergeladenen Dateien haben alle Infos die ich brauche, mit Ausnahme ein paar Geburtsdaten, die nur noch über die Wayback Machine Versionen der Seiten abrufbar sind. Die paar suche ich dann halt von Hand raus. Das einzige was an den Daten noch geändert werden muss sind die Datumsformate, was ein wenig Aufwand ist, aber auch das hab ich längst in der PQ Abfrage umgesetzt.

Gruß
Christian
Anzeige
AW: CSV Dateien herunterladen mit VBA
24.03.2025 19:42:46
Yal
Hallo Christian,

es ist schon klar, dass solche Online-Angebot sich ungern plündern lassen (allgemein gemeint, nicht auf dich bezogen) und dementsprechend alles machen, um das automatisiertes Auslesen zu erschweren.

Programmieren/automatisieren ist immer ein Aufwand/Nutzen-Verhältnis: bis wieviel Dateien lohnt es sich, per Hand ranzugehen, aber wann die Programmierung.
Ärgerlich ist, wenn man einen positiven Usecase für eine Automatisierung hat und nach 10 Zugriff die Webseite deine IP sperrt... That's the game.

Selenium ist auch nicht das Gelbe vom Ei. Ich war neugierig und wollte es knacken. Auf der andere Seite bat der Datendienstleister einen API, die aber 3 FTE gekostet hätte... Die Selenium-Lösung ist nur einmal gelaufen, weil der Dienstleister entdeckt hatte, dass wir automatisieren und gedroht, den Vertrag zu kündigen, obwohl diesbezüglich nichts im AGB es verboten hätte. Wir sind einen Gang zurück, weil wir auf die Daten angewiesen sind. Seit dem gibt es erneut einen Praktikant, der jeden 3 Monaten ca. 2 Woche sich durchklickt, um ca. 5% der Daten zu ernten, die ich mit Selenium in 48 Std abgeholt hatte.

By the way: IMDb hat auch einen API: https://developer.imdb.com/documentation/api-documentation/getting-access/
und natürlich einen Licensing.

VG
Yal
Anzeige
AW: CSV Dateien herunterladen mit VBA
22.03.2025 22:13:33
Christian
Hallo Eifeljoi,

da ich ja auch problemlos VBA eine PQ Abfrage mit diesem M-Code ausführen lassen kann, kein Problem. Nehme ich auch einen M-Code.
Ich gehe mal davon aus, dass PQ die heruntergeladene Datei nicht umbenennen kann oder? Das müsste ich dann wiederum mit VBA machen, oder?

Ich werde es morgen in Ruhe mal testen. Vielen Dank schonmal
Christian
Anzeige
AW: CSV Dateien herunterladen mit VBA
23.03.2025 07:44:48
Christian
Hallo Eifeljoi,

das ist inhaltlich leider nicht dasselbe wie die exportierte Datei.

https://www.herber.de/bbs/user/176372.zip

es gibt 4 Spalten aus der exportierten Datei, die ich zum weiterarbeiten brauche, Position, Const, Name und Birth Date

schaust du bitte nochmal?

Danke
Christian
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18