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, 21:10 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2020, 22: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, 21:28 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2020, 21: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)