Как использовать API Википедии, чтобы получить статистику просмотра определенной страницы в Википедии? - PullRequest
15 голосов
/ 16 марта 2011

Инструмент stats.grok.se предоставляет статистику просмотров страниц конкретной страницы в Википедии. Есть ли способ использовать API Википедии, чтобы получить ту же информацию? Что на самом деле означает свойство счетчика просмотров страниц?

Ответы [ 6 ]

14 голосов
/ 18 ноября 2015

API Pageview был выпущен несколько дней назад: https://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/{project}/{access}/{agent}/{article}/{granularity}/{start}/{end}

Например, https://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/en.wikipedia/all-access/all-agents/Foo/daily/20151010/20151012 даст вам

{
  "items": [
    {
      "project": "en.wikipedia",
      "article": "Foo",
      "granularity": "daily",
      "timestamp": "2015101000",
      "access": "all-access",
      "agent": "all-agents",
      "views": 79
    },
    {
      "project": "en.wikipedia",
      "article": "Foo",
      "granularity": "daily",
      "timestamp": "2015101100",
      "access": "all-access",
      "agent": "all-agents",
      "views": 81
    }
  ]
}
7 голосов
/ 16 марта 2011

Нет, нет.

Свойство counter, возвращаемое из prop=info, сообщит вам, сколько раз страница была просмотрена с сервера. Он отключен в Википедии и других вики Викимедиа, потому что агрессивное кэширование squid / лака означает, что только крошечная доля просмотров страниц попадет на реальный сервер, чтобы воздействовать на этот счетчик, и даже тогда увеличится нагрузка записи в базу данных для обновления этого счетчика. вероятно, будет непомерно.

Инструмент stats.grok.se использует анонимные логи с серверов кеша для расчета просмотров страниц; необработанные файлы журналов доступны по адресу http://dammit.lt/wikistats. Если вам нужен API для доступа к данным из stats.grok.se, вам следует связаться с оператором stats.grok.se , чтобы запросить один создано.


Обратите внимание, что это было написано 4 года назад, и с тех пор был создан API (см. этот ответ ). Однако пока нет способа получить к нему доступ через api.php.

3 голосов
/ 08 февраля 2015

получить ежедневный JSON за последние 30 дней, например:

http://stats.grok.se/json/en/latest30/Britney_Spears

2 голосов
/ 23 апреля 2014

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

1 голос
/ 28 марта 2017

em .. этот вопрос был задан 6 лет назад. В прошлом на официальном сайте такого API не было.

Это изменилось.

Простой пример:

https://en.wikipedia.org/w/api.php?action=query&format=json&prop=pageviews&titles=Buckingham+Palace%7CBank+of+England%7CBritish+Museum

См. Документ:

проп = Просматриваемый

Показывает данные о просмотрах страниц на странице (количество ежедневных просмотров страниц за каждый из последних pvipdays дней) Формат результата - заголовок страницы (с подчеркиванием) => дата (Гм) => количество.

1 голос
/ 15 июля 2014

Кажется, что нет никакого API;однако вы можете отправлять HTTP-запросы на stats.grok.se и анализировать результаты HTML или JSON, чтобы извлечь количество просмотров страниц.

Я создал веб-сайт http://wikipediaviews.org, который делает именно это, чтобыупростить сравнение нескольких страниц за несколько месяцев и лет.Чтобы ускорить процесс и свести к минимуму количество запросов к stats.grok.se, я сохраняю все результаты прошлых запросов локально.

Код, который я использовал, доступен по адресу http://github.com/vipulnaik/wikipediaviews.

.файл с фактическим кодом поиска находится в https://github.com/vipulnaik/wikipediaviews/blob/master/backend/pageviewqueries.inc

function getpageviewsonline($page, $month, $language)
{
  $url = getpageviewsurl($page,$month,$language);
  $html = file_get_contents($url);
  preg_match('/(?<=\bhas been viewed)\s+\K[^\s]+/',$html,$numberofpageviews);
  return $numberofpageviews[0];
}

Код для getpageviewsurl находится в https://github.com/vipulnaik/wikipediaviews/blob/master/backend/stringfunctions.inc:

function getpageviewsurl($page,$month,$language)
{
  $page = str_replace(" ","_",$page);
  $page = str_replace("'","%27",$page);
  return "http://stats.grok.se/" . $language . "/" . $month . "/" . $page;
}

PS: в случае, если ссылка на wikipediaviews.org не 'Это потому, что я зарегистрировал домен совсем недавно.Попробуйте вместо этого http://wikipediaviews.subwiki.org в промежуточный период.

...