按页面从(法语)维基百科获取总页面浏览量

时间:2019-03-18 14:41:50

标签: wikipedia wikipedia-api pageviews

我正在搜索法语Wikipedia项目任何页面的总页面浏览量(从2015年7月,PageViews API的发布日期到2019年1月1日)。

使用PageViews API(How to use Wikipedia API to get the page view statistics of a particular page in wikipedia?)对我来说似乎太繁重:我需要200万个页面中的数据。

在查询中返回返回所有页面标题(https://tools.wmflabs.org/massviews/)的情况下使用MassViews(https://quarry.wmflabs.org/query/34473)也不起作用:MassView受20000页限制,并且无法从我的网站检索某些页面标题的数据查询结果。

您知道一些更有效的工具吗?

3 个答案:

答案 0 :(得分:1)

维基百科的API功能强大,例如this可以获取法语维基百科的Apollo_10的综合浏览量。以此为基础编写脚本并不难。

如果您认为使用API​​查询所有站点比较繁琐,则可以使用Google bigquery。它在其开放数据集中具有综合浏览量数据。有一个tutorial

这是我的例子:

  1. 访问bigqery的控制台。
  2. 在答案中键入以下内容。
select * from `bigquery-public-data.wikipedia.pageviews_2015` where datehour = '2015-07-12 18:00:00 UTC';
  1. 此时您将获得一个包含所有综合浏览量数据的表。

如果要获取法语Wiki的特定页面,则可以指定“ wiki = fr”和“ title = xxx”。由于我是bigquery的新手,所以我不知道如何查询表中的数据并导出。但这是有可能的,因为我对SQL的了解不足。您可以按标题汇总数据并导出结果。

唯一的问题是bigquery不是免费的。例如,上面的查询花费6GB。查询(按需)是免费的,前1 TB免费,之后每TB 5美元。即使您使用“限制”,Bigquery也会根据您选择的列中处理的数据收费。因此可能会花费很多。

答案 1 :(得分:0)

您可以从以下位置下载所有综合浏览量的转储:https://dumps.wikimedia.org/other/pageviews/

答案 2 :(得分:0)

发现:https://dumps.wikimedia.org/other/pagecounts-ez/merged/是页面浏览量转储的合并。在此处记录:https://wikitech.wikimedia.org/wiki/Analytics/Data_Lake/Traffic/Pageviews

下面是一个Python脚本示例,该脚本平凡地打印了文件之一的每一行。

import csv
import bz2
from pprint import pprint

with bz2.open("pagecounts-2011-12-views-ge-5-totals.bz2", "rt", errors = "replace") as fichier:
    for line in fichier:
        text = line.split()
        if(text[0] == "fr"):
            pprint(text)

有了这种种类的文件(每月一次),设置这种工作流程变得很容易:过滤我真正想要的留置权(法语Wiki),将DATA INFILE加载到MySQL数据库中,然后再次使用Python查询。 / p>