17.01.2020, 23:53 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2020, 00:31 von Teamplayer.)
Hi Folks,
ich benötige ein Tool, das in der Lage ist, die GESAMTE USER-LISTE, welche unter TOP-EDITORS in diesem Dokument https://xtools.wmflabs.org/articleinfo/d...rlimit=200[url=https://xtools.wmflabs.org/articleinfo/de.wikipedia.org/Kunst/2019-02-28][/url] zu finden ist, in ein Excel-Sheet zu übertragen. Allerdings sollen nicht die Usernamen in die Tabelle übertragen werden, SONDERN DIE LINKS, die sich hinter den Usernames verbergen. Es soll nachher so aussehen wie im Template-Beispiel.
IP’s sollen einfach nur kopiert (quasi abgeschrieben) werden. Eventuell in ein separates Excel-Sheet.
Werde bekloppt beim händischen übertragen der Links. :22:
deinen doppelten Post habe ich gelöscht. Falls du nach dem Absenden deines Beitrags noch etwas hinzufügen möchtest, kannst du diesen innerhalb der ersten 60 Minuten editieren.
Doch zu deiner Anfrage.
Das gesuchte Tool ist in deinem Excel integriert: PowerQuery aka Daten/Daten abrufen und transformieren ==> Aus dem Web. Allerdings fürchte ich, dass du hier eventuell aufgrund Einschränkungen nicht befugt bist, Listen automatisch runterzuladen. Diesen Hinweis habe ich bekommen:
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:1 Nutzer sagt Danke an WillWissen für diesen Beitrag 28 • Teamplayer
Zitat:Allerdings fürchte ich, dass du hier eventuell aufgrund Einschränkungen nicht befugt bist, Listen automatisch runterzuladen. Diesen Hinweis habe ich bekommen:
genau das habe ich erwartet und ich hätte mich auch sehr gewundert, wäre es zu einem anderen Ergebnis gekommen.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!
...und das Löschen des doppelten Posts. Wollte ich selbst machen. Keinen Löschen Button gefunden. Sry, ist meinem Anfängertum geschuldet.
Danke auch für den Hinweis auf das integrierte Tool (Query). Ich bin mir nicht sicher, ob meine Frage von Dir vollständig verstanden wurde. Es geht nicht darum, nur die Benutzernamen zu kopieren, sondern die Links zu den Benutzerseiten zu übertragen, welche sich öffnen, wenn man auf den Usernamen in der Liste klickt. Das Tool soll den gesamten Kopiervorgang simulieren, den ich zur Zeit händisch ausführe, nämlich: 1.Username in Wiki klicken ->2. Linkadresse kopieren (2 klicks) ->3. zu Excel wechseln -> 4. doppelklicken in Zelle ->5. per rechtsklick Zelle aktivieren -> 6. einfügen.
ich habe deine Anfrage schon beim erstenmal verstanden - PQ benötigt aber erst einmal die entsprechende Datenbank, damit du die benötigten Angaben herausarbeiten kannst. Und das geht - wie ich dir geschrieben hatte - vermutlich aufgrund Einschränkungen des/der Seitenbetreiber nicht.
Eine andere Möglichkeit des Herauskopierens (außer der manuellen Art) kenne ich nicht.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:1 Nutzer sagt Danke an WillWissen für diesen Beitrag 28 • Teamplayer
da musst Du nix simulieren und man kann alle Links auf einmal holen. Dauert nur ein paar Sekunden. Allerdings habe ich die Links nicht "eingedeutscht", da Wikipedia zwischen "Benutzer:" und "Benutzerin:" unterscheidet, während im Originallink immer "User:" steht. Da habe ich keine Ahnung, wie ich da männlich und weiblich herleiten soll. Ist aber nicht schlimm, denn wenn man einen Link anklickt, kommt man trotzdem auf die Deutsche Seite.
Kopiere folgenden Code in ein Modul. Das Makro schreibt alle Links ab Zeile 2, Spalte 5 in die Tabelle, aus der es ausgeführt wird:
Code:
Sub WikipediaUserListeAuslesen()
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
'User Link auslesen
userLink = knotenEinUser.getElementsByTagName("a")(0).href
ActiveSheet.Hyperlinks.Add Anchor:=Cells(zeile, spalte), Address:=userLink, TextToDisplay:=userLink
zeile = zeile + 1
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
18.01.2020, 17:51 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2020, 17:52 von Zwenn.)
Hallo Fennek,
der "unbestrittene Meister des DOM" klingt zwar gut, aber der bin ich ganz sicher nicht :21: Ich selbst habe so einiges von Anton gelernt und wenn ich mir ansehe was Leute wie QHaar auf Stackoverflow wissen und können, fehlt da noch so einiges bei mir. Aber auch deshalb bin ich ja in den Foren aktiv :)
Viele Grüße,
Zwenn
PS: Wenn Du aus der 200 am Ende der URL eine 2000 machst, liest Du auch alle Links auf einmal aus Eine 1000 müsste es auch tun
PPS: Dein Code liest nur die Links mit User: aus. Sämtliche IP Adressen erwischst Du damit nicht
Ich war etwas frustriert: Seit kurzem lese ich bei den Viren-Jägern mit und sehe immer mehr, wie viel mir noch fehlt. Auch ein kleiner Versuch mit "MS Office-Forensik" brachte nicht das Gewünschte.
Da kam eine kurze Pause mit diesem Powershell-Code gerade richtig.
18.01.2020, 18:50 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2020, 18:50 von snb.)
Die website besucht: die Webpage gespeichert als "G:\Kunst - Page History - XTools.htm"
Und dann in Excel:
PHP-Code:
Sub M_snb() With CreateObject("htmlfile") .Body.innerHTML = CreateObject("scripting.filesystemobject").opentextfile("G:\Kunst - Page History - XTools.htm").readall ReDim sn(.Links.Length, 1) For Each it In .Links If InStr(it.href, "User:") Then sn(y, 0) = it.href sn(y, 1) = it.innertext y = y + 1 End If Next End With
Sheet1.Cells(1).Resize(UBound(sn), 2) = sn End Sub