Получение только рефератов из Википедии - PullRequest
1 голос
/ 08 марта 2011

Я искал вокруг, но не получил большой помощи. Вот моя проблема. Я хочу начать со страницы портала в Википедии, скажем Computer_science и перейти к ее категориям страниц. В этой категории есть несколько страниц и есть ссылки на подкатегории. Я посещу некоторые из этих страниц и получу тезисы на одной странице. Затем перейдите на следующий уровень с указателями на этой странице категорий и т. Д.

Я знаю C ++ / php / js / python. Что подходит лучше всего здесь? Я хотел бы сделать это через день. Я знаю, что есть API, но он не кажется полезным для получения контента.

  1. Мне нужно получить страницы
  2. Проанализируйте их, чтобы получить доступ к разделу категорий (или элементу, предоставленному необработанными вики-данными) для получения тезисов, а также для перехода на другие страницы.

Мне нужны предложения по языкам программирования, библиотекам и общедоступному коду, если таковые имеются. Я также слышал, что вики не любят роботов, я планирую получить максимум 500 документов. Это проблема?

Большое спасибо

Ответы [ 5 ]

2 голосов
/ 08 марта 2011

Sanjeev Satheesh,

Ваша цель меня интересует, но у меня нет времени, чтобы погрузиться в плодотворную документацию о различных способах делать то, что вы хотите.

Я искал на stackoverflow, этот вопрос уже поднимался несколько раз, и вы найдете множество ответов в следующих ссылках.Я также собрал различные ссылки на эту тему.

.

По stackoverflow

Проблема в API Википедии

Естьесть ли API Wikipedia?

Как использовать API Wikipedia, если он существует?

Извлечь первый абзац из статьи в Википедии (Python)

Web-соскоб с Python

Получить статью из Википедии с Python

Википедия с Python

.

MediaWiki API, главная страница:

http://www.mediawiki.org/wiki/API%3aMain_page

Страница документации по MediaWiki API

http://en.wikipedia.org/w/api.php

Википедия предлагает бесплатные копии всего доступного контента заинтересованным пользователям.

http://en.wikipedia.org/wiki/Wikipedia%3aDatabase_download

Простой, насколько это возможно, API, быстро разработанный наДни взлома Wikimania 4 августа 2006 года:

http://www.mediawiki.org/wiki/API:Wikimania_2006_API_discussion

Как выполнить разработку бота для использования в проектах Викимедиа:

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

Вики-страницы можно экспортировать в специальном формате XML

http://meta.wikimedia.org/wiki/Help:Export

Python Wikipedia Robot Framework:

http://pywikipediabot.sourceforge.net/

Python Wikipedia RobotFramework:

http://pywikipediabot.sourceforge.net/

Пакет Python для взаимодействия с MediaWiki API:

http://code.google.com/p/python-wikitools/

DBpedia - это попытка сообщества извлечь структурную информациюиз Википедии

http://dbpedia.org/About

2 голосов
/ 08 марта 2011

Не обязательно категория, соответствующая порталу, хотя вы можете попытаться найти категорию с тем же именем, что и у портала, с категориями, в которых находится страница портала (используя API, вы можете запросить это с помощью prop=categories) или страницы категорий, связанные со страницей портала (prop=links&plnamespace=14).

Будет работать любой из этих языков.Вы также можете выбрать Perl, Java, C #, Objective-C или любой другой язык.Список фреймворков разного качества можно найти здесь или здесь .

API, безусловно, может предоставить вам контент, используя prop=revisions.Вы можете даже запросить только «ведущий» раздел с помощью rvsection=0.API также может предоставить вам список страниц в категории с list=categorymembers и список категорий для страницы, использующей prop=categories.

500 страниц, не должно быть проблемой.Если вы хотите получить значительную долю статей, вам нужно использовать вместо этого дамп базы данных .

Подробнее см. в документации API .

1 голос
/ 08 марта 2011

Я предложу Python для быстрой разработки. У вас должно быть два модуля. Один будет сканировать все возможные категории Внутри категории (в основном дерево категорий), другие, которые могут Извлечение информации со страницы сведений (т.е. обычной страницы вики) Википедия поддерживает специальные: экспорт в параметре URL, который будет позволит вам получить ответ XML. Используйте Python's Xpath Модуль поможет вам.

1 голос
/ 08 марта 2011

Хотя вы ищете решение на основе веб-сканера, позвольте мне взглянуть на DBPedia .По сути, это Википедия в формате RDF .Вы можете загрузить целые дампы базы данных, выполнить SPARQL запросов к нему или напрямую указать на ресурс и начать поиск оттуда, просматривая ссылки.
Например, Информатика Доступ к категории можно получить по этому адресу:

http://dbpedia.org/page/Category:Computer_science

1 голос
/ 08 марта 2011

Python, получайте удовольствие от очистки страницы, для этого я бы предложил xpath через lxml.html.

...