Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1760to1764
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Trainings Details von GLS in Excel

Trainings Details von GLS in Excel
29.05.2020 14:04:41
GLS
Hallo liebes Forum,
ich habe eine Excel Tabelle mit unzähligen Trackingnummern, wobei ich den Sendungsstatus automatisch anfragen möchte, welcher in eine Zelle übernommen wird. Leider habe ich keinerlei Programmierkenntnisse, wobei ich gehofft habe in diesem Forum Hilfe zu finden.
Die Daten finden sich hier
https://www.gls-pakete.de/sendungsverfolgung
Vielleicht kann mir jemand helfen?
Vielen Dank im Voraus.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Trainings Details von GLS in Excel
29.05.2020 14:17:01
GLS
Hallo "Neuling",
leider wird dir hier keiner helfen können, der nicht gerade selbst zufällig eine Sendung über GLS versendet hat oder erwartet. Ohne eine gültige Trackingnummer ist ein Programmierung nicht möglich.
Aber: Gleichzeitig ist es natürlich auch ungünstig eine Trackingnummer von dir hier zu posten, weil dann vermutlich vertrauliche Adressdaten eingesehen werden können.
Vielleicht findet sich ja hier zufällig ein Helfer mit einer aktuellen Trackingnummer.
Viele Grüße
Martin
AW: Trainings Details von GLS in Excel
29.05.2020 14:51:11
GLS
Habe hier eine gültige Nummer:
20284731850
Ich nutze übrigens Firefox als Browser, falls das wichtig ist.
Anzeige
AW: Trainings Details von GLS in Excel
29.05.2020 14:51:12
GLS
Habe hier eine gültige Nummer:
20284731850
Ich nutze übrigens Firefox als Browser, falls das wichtig ist.
AW: Trainings Details von GLS in Excel
29.05.2020 15:02:18
GLS
Hallo Neuling,
es geht nur über den Internet Explorer. Habe Dir mal was zusammengestrickt:

Sub GlsTracking()
'Das Makro arbeitet auf der Tabelle, aus der es gestartet wird
'Die Tracking Nummern werden in Spalte A ab Zeile 2 erwartet
'Die Statustexte werden in Spalte B hinter die Nr. geschrieben
Const url As String = "https://www.gls-pakete.de/sendungsverfolgung"
Dim browser As Object
Dim nodeSearchField As Object
Dim nodeSearchButton As Object
Dim nodeStatusText As Object
Dim trackingNumber As String
Dim currentRow As Long
Dim check As Boolean
currentRow = 2 'Startzeile mit erster Trackingnummer
'Schleife zum abarbeiten aller Trackingnumern
Do Until ActiveSheet.Cells(currentRow, 1).Value = ""
'Trackingnummer aus Tabelle lesen
trackingNumber = ActiveSheet.Cells(currentRow, 1).Value
'Internet Explorer initialisieren, Sichtbarkeit festlegen,
'URL aufrufen und warten bis Seite vollständig geladen wurde
Set browser = CreateObject("internetexplorer.application")
browser.Visible = True
browser.navigate url
Do Until browser.readyState = 4: DoEvents: Loop
'Textfeld für die Trackingnummer
On Error Resume Next
Set nodeSearchField = browser.document.getElementByID("trackandtrace__searchinput")
On Error GoTo 0
'Wenn Textfeld vorhanden, Trackingnummer eintragen
If Not nodeSearchField Is Nothing Then
nodeSearchField.Value = trackingNumber
check = True
Else
check = False
End If
'Submit Button
On Error Resume Next
Set nodeSearchButton = browser.document.getElementByID("trackandtrace__searchbutton")
On Error GoTo 0
'Wenn Submit Button vorhanden, klicken
If Not nodeSearchButton Is Nothing Then
nodeSearchButton.Click
'Pause zum laden der Folgeseite
'Die drei hinteren Werte sind Stunden, Minuten, Sekunden
Application.Wait (Now + TimeSerial(0, 0, 3))
check = True
Else
check = False
End If
'Statustext der Sendung auslesen
Set nodeStatusText = browser.document.getElementsByClassName("text-primary lead")(1)
'Statustext in Tabelle schreiben, wenn gefunden
If Not nodeStatusText Is Nothing Then
ActiveSheet.Cells(currentRow, 2).Value = Trim(nodeStatusText.innertext)
Else
ActiveSheet.Cells(currentRow, 2).Value = "Kein Statustext gefunden. Nr. evtl. ungültig"
End If
'Für nächste Trackingnummer vorbereiten
currentRow = currentRow + 1
check = False
browser.Quit
Set browser = Nothing
Set nodeSearchField = Nothing
Set nodeSearchButton = Nothing
Loop
End Sub
Viele Grüße,
Zwenn
Anzeige
AW: Trainings Details von GLS in Excel
29.05.2020 15:04:36
GLS
Sichtkontrolle durch Scrollen vergessen:

Sub GlsTracking()
'Das Makro arbeitet auf der Tabelle, aus der es gestartet wird
'Die Tracking Nummern werden in Spalte A ab Zeile 2 erwartet
'Die Statustexte werden in Spalte B hinter die Nr. geschrieben
Const url As String = "https://www.gls-pakete.de/sendungsverfolgung"
Dim browser As Object
Dim nodeSearchField As Object
Dim nodeSearchButton As Object
Dim nodeStatusText As Object
Dim trackingNumber As String
Dim currentRow As Long
Dim check As Boolean
currentRow = 2 'Startzeile mit erster Trackingnummer
'Schleife zum abarbeiten aller Trackingnumern
Do Until ActiveSheet.Cells(currentRow, 1).Value = ""
'Ab Zeile 15 zur Sichtkontrolle mitscrollen
If currentRow > 14 Then
ActiveWindow.SmallScroll down:=1
End If
'Trackingnummer aus Tabelle lesen
trackingNumber = ActiveSheet.Cells(currentRow, 1).Value
'Internet Explorer initialisieren, Sichtbarkeit festlegen,
'URL aufrufen und warten bis Seite vollständig geladen wurde
Set browser = CreateObject("internetexplorer.application")
browser.Visible = True
browser.navigate url
Do Until browser.readyState = 4: DoEvents: Loop
'Textfeld für die Trackingnummer
On Error Resume Next
Set nodeSearchField = browser.document.getElementByID("trackandtrace__searchinput")
On Error GoTo 0
'Wenn Textfeld vorhanden, Trackingnummer eintragen
If Not nodeSearchField Is Nothing Then
nodeSearchField.Value = trackingNumber
check = True
Else
check = False
End If
'Submit Button
On Error Resume Next
Set nodeSearchButton = browser.document.getElementByID("trackandtrace__searchbutton")
On Error GoTo 0
'Wenn Submit Button vorhanden, klicken
If Not nodeSearchButton Is Nothing Then
nodeSearchButton.Click
'Pause zum laden der Folgeseite
'Die drei hinteren Werte sind Stunden, Minuten, Sekunden
Application.Wait (Now + TimeSerial(0, 0, 3))
check = True
Else
check = False
End If
'Statustext der Sendung auslesen
Set nodeStatusText = browser.document.getElementsByClassName("text-primary lead")(1)
'Statustext in Tabelle schreiben, wenn gefunden
If Not nodeStatusText Is Nothing Then
ActiveSheet.Cells(currentRow, 2).Value = Trim(nodeStatusText.innertext)
Else
ActiveSheet.Cells(currentRow, 2).Value = "Kein Statustext gefunden. Nr. evtl. ungültig"
End If
'Für nächste Trackingnummer vorbereiten
currentRow = currentRow + 1
check = False
browser.Quit
Set browser = Nothing
Set nodeSearchField = Nothing
Set nodeSearchButton = Nothing
Loop
End Sub

Anzeige
AW: Trainings Details von GLS in Excel
29.05.2020 20:23:17
GLS
Moin Zwenn,
wie genial ist das denn?!?!
Vielen Dank!!!!
Das funktioniert ja einwandfrei.
Gibt es irgendwo Lektüre speziell über dieses Thema sodass ich mir das ganze selbst beibringen kann? Nach welchem Stichwort soll ich suchen?
Ich möchte nämlich noch weitere Daten bezogen zur Sendung von der Website abfragen.
AW: Trainings Details von GLS in Excel
29.05.2020 20:23:19
GLS
Moin Zwenn,
wie genial ist das denn?!?!
Vielen Dank!!!!
Das funktioniert ja einwandfrei.
Gibt es irgendwo Lektüre speziell über dieses Thema sodass ich mir das ganze selbst beibringen kann? Nach welchem Stichwort soll ich suchen?
Ich möchte nämlich noch weitere Daten bezogen zur Sendung von der Website abfragen.
Anzeige
AW: Trainings Details von GLS in Excel
30.05.2020 01:18:55
GLS
Hallo Neuling,
schön, dass es mit Deiner Liste funktioniert :-)
Leider gibt es keine Lektüre, in der alles aufeinander abgestimmt erklärt wird. Insgesamt heißt das Thema Web Scraping (am gängigsten) oder auch Screen Scraping:
https://de.wikipedia.org/wiki/Screen_Scraping
Generell solltest Du schon Programmieren können, um Dich mit dem Thema auseinander zu setzen. In welcher Sprache ist eigentlich egal, da die strukturierten Programmiersprachen alle nach dem gleichen Schema funktionieren:
https://de.wikipedia.org/wiki/Strukturierte_Programmierung
Was man sich aneignen muss, ist Wissen über das DOM (Document Object Model). Dieses beschreibt den Aufbau einer Webseite in einer Baumstruktur. Zum DOM gibt es eine Art zentrales Nachschlagewerk. Das Problem ist aber, dass sich die meisten Beschreibungen, die man findet, auf JavaScript beziehen, weil das nunmal die Sprache für Webseiten ist. Das ist ein Grund, warum Programmierkenntnisse ein absoluter Vorteil sind:
https://de.wikipedia.org/wiki/Document_Object_Model
https://developer.mozilla.org/de/docs/DOM/Ueber_das_Document_Object_Model
https://www.w3schools.com/js/js_htmldom.asp
Womit man sich weiterhin natürlich unbeding auskennen muss, ist HTML. Man muss zumindest verstehen, wie man es lesen muss. Oft, um Muster oder Lösungsansätze zu erkennen. Auch etwas über CSS (Cascading Style Sheets) und JavaScript zu wissen schadet nicht:
https://selfhtml.org/
Um bestimmte Elemente einer Webseite im HTML Quelltext zu finden, drückt man im Browser am Besten auf F12. Dann geht im unteren Bereich eine Art Konsole auf. Hier gibt es unter anderem den (DOM) Inspector. In dem kann man sich einfach durch die Baumstruktur klicken. Das man auf dem richtigen Pfad ist, erkennt man daran, dass oben die Webseite blau hinterlegt wird, wenn man sich mit der Maus auf dem richtigen auszuklappenden Element befindet. Je weiter man dem Pfad zum Zielelement folgt, desto kleiner werden die blau hinterlegten Flächen.
Um mit dem HTML zu arbeiten bietet es sich an, den gewünschten Ausschnitt ab einem bestimmten Knoten zu kopieren. Dazu klickt man mit der rechten Maustaste auf den Knoten, geht in den Menüpunkt Kopieren und im dann ausklappenden Menü auf Äußeres HTML. Da der so kopierte Teil meistens ziemlich unstrukturiert ist, wirft man den in einen Code Beautifier. Davon gibt es mehrere. Ich verwende immer diesen (oben links unbedingt auf HTML einstellen):
https://beautifier.io/
Aus dem HTML kann man sich dann einzelne Dinge rauskopieren, die man für die eigene Programmierung benötigt. In der Regel sind das Namen von IDs, CSS Klassen, usw. Schreibe die niemals von Hand ab. Das geht auf jeden Fall nach hinten los.
Tja, viel mehr muss man eigentlich nicht wissen ;-) Gut, VBA und Excel musst Du natürlich auch können, wenn Du Web Scraping mit Excel betreiben willst.
Hier noch ein Link zu einem kleinen Projekt, dass ich gestern für jemanden umgesetzt habe und ein weiterer Link zu einem eher aufwändigen Projekt. Du wirst letzteres mit Sicherheit nicht verstehen. Aber der Quellcode ist sehr gut kommentiert. Vielleicht hilft Dir das an manchen Stellen, wenn Du Deine eigenen Gehversuche unternimmst:
http://www.vba-forum.de/forum/View.aspx?ziel=59517-Informationen_von_Website_in_Excel_schreiben
https://www.herber.de/forum/cgi-bin/callthread.pl?index=1678466
Ich hoffe das hat Dich jetzt nicht abgeschreckt, sondern liefert Dir einen ersten groben Überblick. Es lässt sich natürlich jede Menge googeln und es gibt sehr viele Programmierbeispiele von vielen Leuten. Ich würde erstmal damit anfangen einen einzigen Wert von einer Seite auszulesen.
Man kann das alles übrigens nur lernen, wenn man programmiert, programmiert und programmiert. Praxis ist das absolut entscheidende. Klar braucht man auch die Theorie. Aber die kann man nicht am Stück lernen. Man muss sie häppchenweise direkt umsetzen.
Viele Grüße,
Zwenn
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige