Список = путаница всех ссылок - PullRequest
1 голос
/ 09 июня 2010

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

Мои вопросы касаются опции links-alllinks в API документ здесь После прочтения описания, как там, так и в самом API (оно не работает, и я не могу напрямую связаться с разделом), я думаю, что понимаю, что он должен возвращать.Однако, когда я запустил запрос, он вернул мне то, чего я не ожидал.

Вот запрос, который я запустил:

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=google&rvprop=ids|timestamp|user|comment|content&rvlimit=1&list=alllinks&alunique&allimit=40&format=xml

По сути, он говорит: Получить последнюю версию Googleстранице, включите идентификатор, метку времени, пользователя, комментарий и содержимое каждой ревизии и верните ее в формате XML.Allinks (я думал) должен вернуть мне список страниц википедии, которые указывают на страницу Google (в данном случае первые 40 уникальных).

Я не уверен, что политика на ругательствах,но это результат, который я получил точно:

<?xml version="1.0"?>
<api>
    <query><normalized>
        <n from="google" to="Google" />
        </normalized>
        <pages>
            <page pageid="1092923" ns="0" title="Google">
                <revisions>
                    <rev revid="366826294" parentid="366673948" user="Citation bot" timestamp="2010-06-08T17:18:31Z" comment="Citations: [161]Tweaked: url. [[User:Mono|Mono]]" xml:space="preserve">
                        <!-- The page content, I've replaced this cos its not of interest -->
                    </rev>
                </revisions>
            </page>
        </pages>
        <alllinks>
                <!-- offensive content removed -->
        </alllinks>
    </query>
    <query-continue>
        <revisions rvstartid="366673948" />
        <alllinks alfrom="!2009" />
    </query-continue>
</api>

Часть <alllinks>, это просто куча случайных трюков и оскорбительных комментариев.Почти не то, что я думал, что получу.Я провел немало поисков, но не могу найти прямого ответа на свой вопрос.

  1. Что должен возвращать параметр list=alllinks?
  2. ПочемуЯ получаю это дерьмо там?

1 Ответ

2 голосов
/ 26 июля 2010

Вы не хотите список; список - это то, что перебирает все страницы . В вашем случае вы просто «перечисляете все ссылки, которые указывают на данное пространство имен».

Вам нужно свойство, связанное со страницей Google, поэтому вам нужно использовать prop = links вместо хрена alllinks.

Итак, ваш запрос становится: <a href="http://en.wikipedia.org/w/api.php?action=query&prop=revisions|links&titles=google&rvprop=ids|timestamp|user|comment|content&rvlimit=1&format=xml" rel="nofollow noreferrer">http://en.wikipedia.org/w/api.php?action=query&prop=revisions|links&titles=google&rvprop=ids|timestamp|user|comment|content&rvlimit=1&format=xml</a>

...