В Википедии есть много страниц, которые не являются статьями, например. разговорные страницы и т. д. Как отличить их от статей по URL-адресу?Как отличить статью по Википедии по URL?
ответ
Вы можете получить список Википедии пространств имен и их псевдонимов, используя свой API с помощью следующего запроса:
http://en.wikipedia.org/w/api.php?action=query&meta=siteinfo&siprop=namespaces
Затем, если часть заголовка страницы до первого двоеточия соответствует любой из известные пространства имен, это не статья; в противном случае.
Этот список пространств имен недостаточно, поскольку MediaWiki также использует что-то: что-то условное для ссылок interwiki. http://en.wikipedia.org/wiki/Interwiki_links – jpatokal
@jpatokal Вопрос задает вопрос о URL-адресах. И хотя URL-адреса, такие как http://en.wikipedia.org/wiki/cs:Main_Page, работают, я думаю, что они используются редко. – svick
Короткий ответ: вы не можете с одними только регулярными выражениями.
Более длинный ответ заключается в том, что статьи MediaWiki делятся на пространство имен, которые, в свою очередь, используют двоеточия в качестве маркеров, как в «Talk: Foo». Статьи без двоеточие в названии, таким образом, определенно находится в главном (= содержимом) пространстве имен. Проблема в том, что статьи с двоеточием могут находиться в другом пространстве имен, или be content articles that happen to contain a colon, а так как список пространств имен WP длинный и постоянно меняющийся, вы не можете (или, по крайней мере, не должны) жестко кодировать этот список в регулярном выражении ,
Правильный ответ заключается в том, чтобы использовать MediaWiki API для итерации/поиска статей в основном пространстве имен.
Это двойное значение толстой кишки - это именно то, что заставило меня застрять! – lizarisk
Вы не должны жестко кодировать список пространств имен, но как насчет использования API для получения обновленного списка (см. Мой ответ)? – svick
Почему бы просто не использовать API для получения предварительно фильтрованного списка статей, которые, как гарантируется, будут из основного пространства имен? http://www.mediawiki.org/wiki/API:Query#Using_list.3Dallpages_as_generator – jpatokal
- 1. Fetch статью Википедии с Python
- 2. Получить статью Википедии с заголовка
- 3. Получить статью по индексу
- 4. Как получить правильную статью в Википедии
- 5. Fetch случайную статью из Википедии апи
- 6. Получите сегодняшнюю статью с API Википедии?
- 7. Podio получить статью по ссылке
- 8. Запрос MediaWiki и/или WikidataQuery, чтобы найти статью Википедии
- 9. Иллюстрация алгоритмов сортировки по википедии?
- 10. Экспорт Википедии по категории вариант?
- 11. Как получить историческую версию статьи Википедии по данной дате?
- 12. Как получить список всех категорий википедии, содержащих статью?
- 13. Категории статей в Википедии по id
- 14. Как отличить базовый класс по типу
- 15. Сортировка результатов без использования порядка по статью
- 16. API Википедии: получить изменения по таймфрейму
- 17. Как получить URL из Википедии API?
- 18. Business Intelligence (BI) по данным Википедии
- 19. Sumbit запросы по википедии через R
- 20. Получить статью в Википедии, исключая ее с заголовком в списке
- 21. Как получить изображение jpeg со страницы Википедии по API?
- 22. Нельзя отличить класс A по классу B
- 23. Как просмотреть недавно удаленные страницы по API Википедии?
- 24. Как получить количество кликов по ссылке из Википедии?
- 25. Как запросить форму данных Infobox страницу Википедии по API?
- 26. Как получить историю пересмотра статей из Википедии
- 27. Обнаружение URL-адресов файлов Википедии
- 28. Как выполнить javascript по URL-адресу программно
- 29. Взаимодействие с Википедии API
- 30. Как отличить запуск активности от запуска или вверх по навигации
Что вы пробовали? На страницах «Talk» перед заголовком «Обсуждение»: как в заголовке страницы, так и в URL-адресе. –
Да, но есть не только страницы разговора. Я пытался использовать только alpanumeric URLs, но это явно неверно. – lizarisk