2016-05-12 34 views
0

现在我们有代码在文章中删除链接。我们还需要链接上的点击次数。有人可以帮忙吗? 母猪到目前为止,我们有这样的代码:如何获取维基百科链接的点击次数?

String[] articles = {"Abdominal_pain"}; 

void setup() { 

    for (int i = 0; i < articles.length; i++) { 

     String article = articles[i]; 
     String start = "20160101"; // YYYYMMDD 
     String end = "20170101"; // YYYYMMDD 

     // documentation: https://wikimedia.org/api/rest_v1/?doc#!/Pageviews_data/get_metrics_pageviews_per_article_project_access_agent_article_granularity_start_end 
     // >> https://en.wikipedia.org/w/api.php?action=query&format=json&prop=links&meta=&titles=Albert+Einstein&pllimit=500 
     String query = "https://en.wikipedia.org/w/api.php?action=query&format=json&prop=links&meta=&titles="+article+"&pllimit=500"; 

     String[] lines = loadStrings(query); 

     for (int j = 0; j < lines.length; j++) { 
      String line = lines[j]; 

      if (line.contains("\"title\":")) { 

        println(line); 
        // java string split 
      } 
     } 
    } 
} 

回答

0

您正在使用的查询显然给你一堆的文章,你的文章主要"Abdominal_pain"链接。

您需要更进一步并遍历所有这些链接。通过使用JSONObjects而不是像你目前正在做的那样解析Strings,你可以使你的生活变得更容易。检查出更多的信息的loadJSONArray()功能,但基本上你可以这样做:

JSONArray links = loadJSONArray(query); 
for (int i = 0; i < values.size(); i++) { 
    JSONObject link = values.getJSONObject(i); 
    String title = link.getString("title"); 
    //fetch the info for that title 
} 

一旦你的标题,你就可以获取该页面的信息。一个例子查询网址是https://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/en.wikipedia/all-access/all-agents/Abdominal_pain/daily/20151010/20151012返回该JSON:

{"items":[{"project":"en.wikipedia","article":"Abdominal_pain","granularity":"daily","timestamp":"2015101000","access":"all-access","agent":"all-agents","views":1134},{"project":"en.wikipedia","article":"Abdominal_pain","granularity":"daily","timestamp":"2015101100","access":"all-access","agent":"all-agents","views":1160},{"project":"en.wikipedia","article":"Abdominal_pain","granularity":"daily","timestamp":"2015101200","access":"all-access","agent":"all-agents","views":1313}]} 

你必须做一些汇总得到的总数,或者也许是总在API中其他地方。

你将不得不对API的返回做一点研究。通过文档阅读是编程的重要部分。幸运的是,Wikipedia API有great documentation,这就是你应该看的地方。

如果您遇到问题,我建议您尝试一些方法并发布另一个问题,以及MCVE。祝你好运。

参见:How to use Wikipedia API to get the page view statistics of a particular page in wikipedia?

+1

这将会给这些文章的总页面访问量而不是只从所选的文章(其中的方式是不可用的数据)的点击次数。 – Ainali