У меня есть набор полных адресов, какВикипедия Mediawiki API получить PageId из 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
Я хочу найти Википедии pageids для этих URLS. Раньше я использовал API Mediawiki, но не могу понять, как это сделать.
Я попытался извлечь заголовок страницы из URL, взяв подстроку lastindexof ("/") и последнего символа, а затем запросив API для получения pageid.
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
Но проблема в том, что некоторые из моих ссылок могут быть переадресовывает и, следовательно, подстрока не всегда может быть заголовок страницы.
TL; DR: Как я могу найти страницу страницы wikipedia из URL-адреса?
Спасибо за ответ. Я знаю обо всех этих методах, но никто не помогает моему делу. В обоих ваших ответах мне нужен page_title для работы. У меня нет page_title, у меня есть только URL. Вот в чем проблема. URL-адреса не могут быть переведены на page_titles подстрокой. Также page_titles может содержать неанглийский текст в кодировке UTF8.Который не обязательно будет присутствовать в URL-адресе и отображается как куча транслитерированного текста. –
Хорошо. Таким образом, вы должны сначала извлечь подстроку, как вы сказали, затем вызвать API для нормализации заголовка и разрешения перенаправления (даже с% -encoded титров, таких как https://ar.wikipedia.org/w/api.php?action= query & prop = info & title =% D9% 86% D8% A7% D8% B3% D8% A7), а в случае нелатинских символов вы должны закодировать возвращенную строку на UTF8 (например, для французского слова «Café» API возвращает «title»: «Caf \ u00e9», где «é» - Unicode U + E9). – Seb35