Ich habe eine Reihe von Voll Urls wieWikipedia Mediawiki API pageId von URL bekommen
http://en.wikipedia.org/wiki/Episkopi_Bay
http://en.wikipedia.org/wiki/Monte_Lauro
http://en.wikipedia.org/wiki/Lampedusa
http://en.wikipedia.org/wiki/Himera
http://en.wikipedia.org/wiki/Lago_Cecita
http://en.wikipedia.org/wiki/Aspromonte
Ich möchte wikipedia pageids für diese URLS zu finden. Ich habe die Mediawiki API schon früher benutzt, aber ich kann nicht herausfinden, wie ich das machen könnte.
Ich habe versucht, den Seitentitel aus den URLs zu extrahieren, indem ich einen Teilstring von lastindexof ("/") und das letzte Zeichen nehme und dann die API abfrage, um peidid zu erhalten.
http://en.wikipedia.org/wiki/Episkopi_Bay --> Episkopi_Bay
http://en.wikipedia.org/wiki/Monte_Lauro --> Monte_Lauro
http://en.wikipedia.org/wiki/Lampedusa -- > Lampedusa
http://en.wikipedia.org/wiki/Himera --> Himera
http://en.wikipedia.org/wiki/Lago_Cecita --> Lago_Cecita
http://en.wikipedia.org/wiki/Aspromonte --> Aspromonte
Aber das Problem ist, dass einige meiner Links könnten Umleitungen sein und damit der Teil vielleicht nicht immer der Titel der Seite sein.
TL; DR: Wie finde ich die Seitenkennung einer Wikipedia-Seite von einer URL?
Danke für die Antwort. Ich weiß über beide Methoden Bescheid, aber keiner hilft mir. In beiden Antworten benötige ich einen page_title, mit dem ich arbeiten kann. Ich habe keinen page_title, ich habe nur die URL. Hier liegt das Problem. URLs können nicht mit Teilzeichenfolgen in page_titles übersetzt werden. Auch page_titles können nicht-englischen UTF8-kodierten Text enthalten.Was nicht notwendigerweise in der URL vorhanden ist und sich als ein Bündel von transliteriertem Text zeigt. –
Ok. Sie müssen also zuerst die Teilzeichenfolge wie beschrieben extrahieren und dann die API aufrufen, um den Titel zu normalisieren und die Weiterleitungen aufzulösen (sogar mit% -kodierten Titeln wie https://ar.wikipedia.org/w/api.php?action=) query & prop = info & titles =% D9% 86% D8% A7% D8% B3% D8% A7), und bei nicht lateinischen Zeichen muss die zurückgegebene Zeichenfolge in UTF8 codiert werden (zB für das französische Wort "Café" der Die API gibt "title" zurück: "Caf \ u00e9", wobei "é" Unicode U + E9 ist. – Seb35