Извлечь данные из статьи в Википедии

Я пытаюсь извлечь упорядоченный список категорий и их подкатегорий из статьи в Википедии. Эта статья: http://en.wikipedia.org/wiki/Outline_of_academic_disciplines. должны быть динамически закодированы на моем сайте. Я также готов вручную извлечь данные с помощью электронной таблицы (операторы importxml, importhtml и т. д.). Тем не менее, я до сих пор не нашел элегантного способа сделать это (извлечение из электронной таблицы или через API) для приведенной выше статьи. (просматривая исходный код, вы можете видеть, что importhtml с таблицей, поскольку запрос вводит все элементы списка в одну ячейку, а importhtml со списком, поскольку запрос не различает списки (т.е. нет способа узнать, какие списки являются подсписками какие категории)). Может кто-нибудь дать несколько предложений.


person theyuv    schedule 02.12.2014    source источник
comment
Я рекомендую вам прочитать документацию Википедии о написании парсинг-бота, прежде чем заходить слишком далеко.   -  person alroc    schedule 02.12.2014


Ответы (1)


В Википедии «Категория» — это специальный термин: чтобы получить категории этой статьи через API, запрос выглядит следующим образом:

http://en.wikipedia.org/w/api.php?format=xml&action=query&prop=categories&titles=Outline%20of%20academic%20disciplines

Но, насколько я могу судить, вам нужны все URL-адреса статей Википедии, которые перечислены в этой таблице.

Это можно сделать несколькими способами: самый простой — взять викикод из статьи (здесь), вставьте его в хороший редактор (я рекомендую Sublime), а затем вы можете использовать Search & Replace, чтобы очистить "[["" и "]]", а также добавить перед каждая статья URL

http://en.wikipedia.org/wiki/

При этом вы можете получить полный список URL-адресов статей, упомянутых на этой странице. Надеюсь, это то, что вы ищете (вы упоминаете какой-то код, но я его не вижу).

person Aubrey    schedule 19.12.2014