Daten von Webseite Exportieren und In Excel oder Access schreiben mit Automatischen Aktualisierungen
Hallo Zusammen
Bitte flippt nicht gleich aus und verweißt mich auf Google oder sagt ich soll die Suchfunktion benutzten. Den das habe ich schon gemacht. Google liefert nichts brauchbares und die einzigen Artikel hier die auf dieses Thema verweisen sind ungenau beschrieben oder nicht vollendet.
Mein Ziel:
Ich habe mir das ganze so vorgestellt, dass ich Informationen von einer Webseite auslesen kann und Sie mir diese schön strukturiert in ein Excel oder Access File schreibt. (Ja ich kenne die Funktion von Excel die es ermöglicht Daten von Webseiten zu importieren) Funktioniert nur nicht ganz so wie ich mir das vorstelle.
Im Grunde geht es darum, dass ich eine Rangliste exportieren möchte und diese allwöchentlich automatisch Aktualisiert und in eine andere Mappe, Tabelle geschrieben wird.
Ich müsste dann im Grunde nur noch die Tabelle öffnen und auswerten.
Mein Gedanke dahinter war, dass ich für mich selbst eine Statistik machen kann und besser festhalten kann wer sich wie entwickelt hat.
ICH BRAUCHE ES NICHT ZUM BETRÜGEN!!!
Falls jemand daran denkt. Ich möchte sie auf keinen Fall einsetzen um mich selbst zu bereichern.
Falls jemand eine Idee hat wie ich das verwirklichen kann und mir dies Miteilt bin ich sehr Dankbar.
Oder falls jemand doch einen brauchbaren Link zu diesem Thema findet bin ich ebenfalls Dankbar.
Freundliche Grüsse
sigisigi
Bitte flippt nicht gleich aus und verweißt mich auf Google oder sagt ich soll die Suchfunktion benutzten. Den das habe ich schon gemacht. Google liefert nichts brauchbares und die einzigen Artikel hier die auf dieses Thema verweisen sind ungenau beschrieben oder nicht vollendet.
Mein Ziel:
Ich habe mir das ganze so vorgestellt, dass ich Informationen von einer Webseite auslesen kann und Sie mir diese schön strukturiert in ein Excel oder Access File schreibt. (Ja ich kenne die Funktion von Excel die es ermöglicht Daten von Webseiten zu importieren) Funktioniert nur nicht ganz so wie ich mir das vorstelle.
Im Grunde geht es darum, dass ich eine Rangliste exportieren möchte und diese allwöchentlich automatisch Aktualisiert und in eine andere Mappe, Tabelle geschrieben wird.
Ich müsste dann im Grunde nur noch die Tabelle öffnen und auswerten.
Mein Gedanke dahinter war, dass ich für mich selbst eine Statistik machen kann und besser festhalten kann wer sich wie entwickelt hat.
ICH BRAUCHE ES NICHT ZUM BETRÜGEN!!!
Falls jemand daran denkt. Ich möchte sie auf keinen Fall einsetzen um mich selbst zu bereichern.
Falls jemand eine Idee hat wie ich das verwirklichen kann und mir dies Miteilt bin ich sehr Dankbar.
Oder falls jemand doch einen brauchbaren Link zu diesem Thema findet bin ich ebenfalls Dankbar.
Freundliche Grüsse
sigisigi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 228095
Url: https://administrator.de/contentid/228095
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo sigisigi,
das ist eigentlich kein Problem, kommt immer drauf an wie komplex der Teil ist, den es zu extrahieren gillt. Aber grundsätzlich eine simple Scripting-Aufgabe. Schick doch mal einen Link zur Seite und den Teil den du extrahieren möchtest.
Dir jetzt hier alle nötigen Dingen zu erläutern die du dafür können musst würde den Rahmen hier sprengen. Wenn du etwas Powershell verstehst kann ich dir gerne zeigen wie man damit bestimmte Tags aus Webseiten extrahieren kann.
Grüße Uwe
das ist eigentlich kein Problem, kommt immer drauf an wie komplex der Teil ist, den es zu extrahieren gillt. Aber grundsätzlich eine simple Scripting-Aufgabe. Schick doch mal einen Link zur Seite und den Teil den du extrahieren möchtest.
Dir jetzt hier alle nötigen Dingen zu erläutern die du dafür können musst würde den Rahmen hier sprengen. Wenn du etwas Powershell verstehst kann ich dir gerne zeigen wie man damit bestimmte Tags aus Webseiten extrahieren kann.
Grüße Uwe
brauchst du alle Spieler aus der Ranglisten-Tabelle (also alle Subseiten) oder nur z.B. 1-25 ?
Bitteschön ....
Fürs Beispiel extrahiert es erst mal die ersten 200 Spieler / lässt sich in Zeile 2 des Scripts anpassen (muss ein mehrfaches von 25 sein)
In Zeile 3 wird das Excel-File angegeben in das die Daten in ein neues Sheet importiert werden. Existiert das File noch nicht wird es automatisch erstellt.
(benötigt min. Powershell 3.0)
Grüße Uwe
Fürs Beispiel extrahiert es erst mal die ersten 200 Spieler / lässt sich in Zeile 2 des Scripts anpassen (muss ein mehrfaches von 25 sein)
In Zeile 3 wird das Excel-File angegeben in das die Daten in ein neues Sheet importiert werden. Existiert das File noch nicht wird es automatisch erstellt.
(benötigt min. Powershell 3.0)
# Maximal zu extrahierende Anzahl an Spieler(muss durch 25 teilbar sein)
$maxplayers = 200
$pathDataFile = "C:\Daten.xlsx"
#-----------------
$site = 0
$players = @()
write-host "Lade Seiten und extrahiere die Spieler ..." -BackgroundColor White -ForegroundColor Blue
for ($i = 0; $i -lt ($maxplayers / 25); $i++){
$result = Invoke-WebRequest "http://ch23.staemme.ch/guest.php?screen=ranking&mode=player&offset=$site"
$table = $result.AllElements | ?{$_.class -eq "lit-item"} | %{$_.innerText}
$pos = 0
for ($x = 0;$x -lt 25; $x++){
$rang = $table[$pos]
$name = $table[$pos+1]
$stamm = $table[$pos+2]
$punkte = $table[$pos+3]
$dörfer = $table[$pos+4]
$punkteschnitt = $table[$pos+5]
$players += New-Object PSObject -property @{"Rang"=$rang;"Name"=$name;"Stamm"=$stamm;"Punkte"=$punkte;"Dörfer"=$dörfer;"Punkteschnitt"=$punkteschnitt}
$pos += 6
}
$site += 25
}
$players |select Rang,Name,Stamm,Punkte,Dörfer,Punkteschnitt | export-csv "$env:TEMP\players.csv" -Delimiter ";" -Encoding UTF8 -NoTypeInformation
write-host "Füge Daten in Excel-Sheet ein ..." -BackgroundColor Green -ForegroundColor White
$Excel = new-object -com Excel.Application
$Excel.visible = $false
$Excel.DisplayAlerts = $false
if (Test-Path $pathDataFile){
$docDaten = $Excel.Workbooks.Open($pathDataFile)
}else{
$docDaten = $Excel.Workbooks.Add()
$docDaten.SaveAs($pathDataFile)
}
$docTemp = $Excel.Workbooks.Open("$env:TEMP\players.csv")
$docTemp.Worksheets.Item(1).Range("A:F").Copy()
$newSheet = $docDaten.Worksheets.Add()
$newSheet.Name = (get-date -Format "dd.MM.yyyy hh.mm.ss")
$newSheet.Paste($newSheet.Range("A1"))
$docTemp.Close($false)
$docDaten.Save()
$Excel.DisplayAlerts = $true
$Excel.visible = $true
Irgendwie klappt es mit dem Script bei mir nicht.
(benötigt min. Powershell 3.0) s.o.Kommt bei dir auch eine Fehlermeldung?
nope, sonst hätte ich es hier nicht gepostet ...Meldung ist einfach zu schnell wieder weg bevor ich sie mir genauer anschauen kann.
dann führe das Script in einer Konsole aus ...dann siehst du die Fehlerausgabe