Как использовать API Википедии, чтобы получить статистику просмотра страницы на определенной странице в Википедии?

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

Ответы

Ответ 1

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
    }
  ]
}

Ответ 2

Нет, нет.

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

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


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

Ответ 4

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

Ответ 5

Кажется, что 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.

Ответ 6

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). Формат результата - это название страницы (с подчеркиванием) = > дата (Ymd) = > count.