Mam zestaw pełnych adresów URL, jakWikipedia Mediawiki API dostać IdStrony z URL
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
Chcę znaleźć wikipedia pageids dla tych adresów URL. Użyłem API Mediawiki wcześniej, ale nie mogę zrozumieć, jak mogę to zrobić.
Próbowałem już wyodrębnić tytuł strony z adresów URL, biorąc podłańcuch ostatniegoindeksu ("/") i ostatniego znaku, a następnie wysyłając zapytanie do interfejsu API, aby uzyskać identyfikator strony.
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
Ale problemem jest to, że niektóre z moich linków może być przekierowania i stąd podciąg nie może być zawsze tytuł strony.
TL; DR: Jak znaleźć identyfikator strony wikipedii z adresu URL?
Dzięki za odpowiedź. Wiem o obu tych metodach, ale żadna nie pomaga mojej sprawie. W obu twoich odpowiedziach potrzebuję page_title do pracy. Nie mam page_title, mam tylko URL. Na tym polega problem. Adresów URL nie można przetłumaczyć na podstrony stron tytułowych. Również page_titles może zawierać nieanglojęzyczny kodowany UTF8 tekst.Które nie muszą znajdować się w adresie URL i pojawiają się jako pęczek transliterowanego tekstu. –
Ok. Musisz więc najpierw wyodrębnić podłańcuch, jak powiedziałeś, następnie wywołać API, aby znormalizować tytuł i rozwiązać przekierowania (nawet z tytułami z kodowaniem%, takimi jak https://ar.wikipedia.org/w/api.php?action= query & prop = info & titles =% D9% 86% D8% A7% D8% B3% D8% A7), aw przypadku znaków innych niż łacińskie musisz zakodować zwracany ciąg do UTF8 (np. dla francuskiego słowa "Café" API zwraca "title": "Caf \ u00e9", gdzie "é" to Unicode U + E9). – Seb35