erste Info: Ich bin Python- und Programmieranfänger! Zweite Info: Falls ich bei meiner Internet- und Forenrecherche die Lösung zu meinem Problem übersehen habe, tut es mir sehr leid, dass ich Frage hier stelle! Ich habe wirklich lange recherchiert.
Ich habe mit einem Python-Einsteigerkurs begonnen, den ich Kapitel für Kapitel durcharbeite, aber ich muss bewusst eine komplexere zeitkritische Fragestellung angehen auf Bitte meines Vorgesetzten. Wenn das nicht geht, ist es OK. Ich akzeptiere auch evtl. Kritik, dass ich mich erstmal einarbeiten sollte.
Wir haben über Jahre Kundendaten auf einem geschützten Internetportal eingetragen. Das Portal bietet eine Eingabemaske für jede Kundenbestellung, in die man die Daten einträgt (z.B. Stückzahlen, Einzelpreis). Im Anschluss kann man sich daraus ein pdf generieren lassen (bspw. Gesamtpreis etc.). Nun möchten wir die Daten der letzten 10 Jahre (>1500 Kundenbestellungen) auswerten. Der Betreiber sagt aber, dass keine Funktion zur Verfügung steht, die Daten aller Bestellungen als csv o.ä. herunterzuladen. Händisch geht das aber wegen der Menge nicht.
Die Eingabeseite ist mit Typo3 erstellt, es gibt so etwas wie Frames, aber im HTML-Code keine frame tags. Es gibt oben Links für die Navigation ("Über uns", "Für Kunden", "Referenzen") und links eine Spalte mit Links ("Ihre Kunden", "Neuen Kunden anlegen"). Der größte Teil ist die Eingabemaske für die aktuelle Bestellung.
Jede Bestellung hat danach eine eigene vom System vergebene ID, die hinten an die URL angehängt ist: https://www.firmaX.de/kunden/123456 (fiktive URL)
(Pikanterweise kann ich auch fremde Bestellungen einsehen, wenn ich hinten die ID ändere; ich muss aber mit meinem LogIn eingeloggt sein. Ich werde das den Betreibern schnellstmöglich mitteilen, hoffe aber, vorher noch unsere Daten zu kriegen.)
Mit dem webbrowser kann ich die individuelle Eingabemaske aufrufen:
Code: Alles auswählen
for i in ["123456", "654321", "112233"]:
base_url = "https://www.firmaX.de/kunden/"
url = base_url + str(i)
webbrowser.open(url)
Wenn ich diese Webseiten allerdings speichern will, enthält das gespeicherte txt nur die beiden Navigationsframes ("Über uns"; "Für Kunden"... und "Ihre Kunden", "Neuen Kunden anlegen"). Die Info aus der Eingabemaske ist nicht mit gespeichert. Da sind aber die Daten (Auftragsvolumen, Datum, Stückzahlen), die wir benötigen.
Code: Alles auswählen
import requests
url = "https://www.firmaX.de/kunden/123456/"
r = requests.get(url)
with open('Bestellung.txt', 'w', encoding="utf-8") as file:
file.write(r.text)
Ist das so verständlich? Fehlen noch Angaben? Vielen Dank!
Taburkel