Hallo T,
das geht mit unten stehendem Makro. Um "weiterzublättern", wenn es mehr als 100 Suchtreffer gibt war ich jetzt allerdings zu faul. DU kannst alles über die URL-Parameter einstellen. Bei der Automatisierung muss man meistens nicht vorgehen, wie ein Mensch. Also Suchfeld füllen und abschicken und den ganzen Blub kannst Du Dir sparen.
Sub StepStoneJobsAuslesen()
'***********************************************************************
'Das Makro schreibt ab Zeile 2 in die Tabelle, aus der es gestartet wird
'***********************************************************************
'Es sind nur 2 Parameter notwendig:
'Die Reihenfolge von URL-Parametern ist egal
'Deshalb nimmt man die Konstanten nach vorne
'Der erste URL-Parameter/ die Parameterliste wird mit dem Fragezeichen eingeleitet (?)
'Jeder weitere Parameter wird mit dem Kaufmanns-Und abgetrennt (&)
'li=100 [Setzt die Anzahl der Suchtreffer pro Seite auf 100. Mehr geht nicht]
'ke= [Hinter dem Parameternamen ke kommt der Suchterm. Der ist dynamisch]
Const baseUrl As String = "https://www.stepstone.de/5/ergebnisliste.html?li=100&ke="
Dim browser As Object
Dim url As String
Dim urlSearchTerm As String
Dim nodeJobOfferContainer As Object
Dim nodeAllJobOffers As Object
Dim nodeOneJobOffer As Object
Dim currentRow As Long
Dim jobOfferTitle As String
Dim jobOfferUrl As String
Dim nextPossible As Boolean
'Wir lassen in diesem Beispiel stumpf ab Zeile 2 schreiben
currentRow = 2
'Dynamisierung für mehrere Suchbegriffe gehört in eine Schleife
'Die lasse ich hier weg, weil die nur im Zusammenhang mit mehreren
'Suchbegriffen in einer Tabelle Sinn macht
'Deshalb wird hier mit dem folgenden statischen Suchbegriff gearbeitet
'Leerzeichen werden durch ein + ersetzt
'Sonderzeichenersetzung insgesamt kann automatisiert werden
urlSearchTerm = "abb+ag"
'Es ergibt sich die ganze URL
url = baseUrl & urlSearchTerm
'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
'Den Container mit den Jobangeboten separieren
Set nodeJobOfferContainer = browser.document.getElementsByClassName("gvBCse")(0)
'Alle Jobangebote in eine NodeList schreiben
Set nodeAllJobOffers = nodeJobOfferContainer.getElementsByClassName("fKQtCB")
'Alle Jobangebote durchgehen und in die aktive Tabelle schreiben
For Each nodeOneJobOffer In nodeAllJobOffers
'Titel des Jobangebots auslesen und in Tabelle schreiben
jobOfferTitle = Trim(nodeOneJobOffer.getElementsByClassName("iHAUBO")(0).innertext)
ActiveSheet.Cells(currentRow, 1).Value = jobOfferTitle
'URL des Jobangebots auslesen und als Link in die Tabelle schreiben
jobOfferUrl = nodeOneJobOffer.getElementsByClassName("gzNLsV")(0).href
ActiveSheet.Hyperlinks.Add Anchor:=ActiveSheet.Cells(currentRow, 2), Address:=jobOfferUrl, TextToDisplay:=jobOfferUrl
'Nächste Zeile vorbereiten
currentRow = currentRow + 1
Next nodeOneJobOffer
End Sub
Viele Grüße,
Zwenn
|