Vielen Dank an Günter, an Zwenn und an Fennek. Das sind zwei sehr elegante Lösungen von Zwenn und Fennek.
Hättet Ihr noch eine Lösung dafür, nur die IPs aus der Userliste zu kopieren? Quasi abzuschreiben? Vielen Dank auch an Benutzer „snb“. Habe Deinen Beitrag gerade gesehen, aber noch nicht ausführen können. Mir brummt derzeit die Rübe… LG
18.01.2020, 20:10 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2020, 21:10 von Zwenn.)
Hallo zusammen
@Fennek
Alles gut, ich habe gar nix persönlich genommen in irgend einer negativen Weise :)
@snb
Kann man so machen, ist dann aber (mit Verlaub) scheiße
Warum sollte man sich die Arbeit machen die Seite vor jedem Abgleich manuell zu speichern
Umlaute werden bei Deiner Lösung durch "den üblichen Kuddelmuddel" ersetzt -> Was da an Links rauskommt ist nicht brauchbar [Edit: Stimmt nicht. Die Links werden mit den %-Zeichen für URLs aufgebaut und funktionieren. Die Namen werden aber falsch dargestellt]
Bei IP6 Adressen wirds ganz gruselig (sofern ich das richtig zugeordnet habe) [Edit: Habe ich nicht, weil die sind ja nicht User: sondern Special:Contributions. Aber irgendwo kam was ganz unleserliches raus. Edit 2: Habs gefunden. Der Username לערי ריינהארט wird unleserlich ausgegeben]
Auch Du liest "nur" die User: aus (Was sich allerdings leicht beheben lässt)
Dein Code setzt keine Links in die Excel Tabelle, sondern nur Strings
Nix desto trotz finde ich es immer gut auch andere Lösungsansätze zu sehen :) Zumal Dein Code echt schnell ist :28:
18.01.2020, 20:28 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2020, 20:28 von Fennek.)
@Zwenn
zum Testen mache ich das lokale Abspeichern auch, sofern man im UTF-8 Format speichert, geht das auch mit den Umauten.
Für "MSXML2.HTTP" ist es egal, ob man aus dem Web oder einer lokalen Text-Datei lädt.
so liest PS auch die IP's aus, bei IPv4 sieht es gut aus, bei IPv6 teilweise sehr merkwürdig:
@Fennek
Stimmt auffallend, was Du über UTF8 und MSXML2.HTTP schreibst :)
@Teamplayer
Ehrlich gesagt weiß ich nicht genau was Du meinst. Aber um nur die IP Adressen auszuzlesen kannst Du folgendes verwenden (inklusive IP6 ) In Spalte 5 werden die Links generiert, in Spalte 4 werden die IP Adressen als Zeichenketten eingetragen:
Code:
Sub WikiIPsAuslesen()
Dim browser As Object
Dim url As String
Dim knotenUserTabelle As Object
Dim knotenAlleUser As Object
Dim knotenEinUser As Object
Dim userLink As String
Dim zeile As Long
Dim spalte As Long
zeile = 2
spalte = 5
'Parameter editorlimit auf 2000 damit alle User direkt in einer Tabelle aufgelistet werden
url = "https://xtools.wmflabs.org/articleinfo/de.wikipedia.org/Kunst//2019-02-28?editorlimit=2000"
'Internet Explorer initialisieren, Sichtbarkeit festlegen,
'URL aufrufen und warten bis Seite vollständig geladen wurde
Set browser = CreateObject("internetexplorer.application")
browser.Visible = False
browser.navigate url
Do Until browser.ReadyState = 4: DoEvents: Loop
'UserTabelle holen
Set knotenUserTabelle = browser.document.getElementsByClassName("table table-bordered table-hover table-striped top-editors-table")(0)
'NodeCollection aller Usereinträge erstellen
Set knotenAlleUser = knotenUserTabelle.getElementsByTagName("tbody")(0).getElementsByTagName("tr")
'Alle Charteinträge durchgehen
For Each knotenEinUser In knotenAlleUser
'IP Link auslesen
userLink = knotenEinUser.getElementsByTagName("a")(0).href
If InStr(1, userLink, "Special:Contributions") > 0 Then
Cells(zeile, spalte - 1).Value = Trim(knotenEinUser.getElementsByTagName("a")(0).innertext)
ActiveSheet.Hyperlinks.Add Anchor:=Cells(zeile, spalte), Address:=userLink, TextToDisplay:=userLink
zeile = zeile + 1
End If
Next knotenEinUser
'Aufräumen
browser.Quit
Set browser = Nothing
Set knotenUserTabelle = Nothing
Set knotenAlleUser = Nothing
Set knotenEinUser = Nothing
End Sub
Viele Grüße,
Zwenn
Folgende(r) 1 Nutzer sagt Danke an Zwenn für diesen Beitrag:1 Nutzer sagt Danke an Zwenn für diesen Beitrag 28 • Teamplayer
kann man die IPs in Spalte 4 so rüberholen, das alle im selben Format erscheinen? Excel rückt einige IPs nach rechts ein. Wenn ich draufklicke verschwinden die Trennpunkte. Die sollen aber erhalten bleiben! (Check Zeile 7 im Anhangbeispiel)