2016-05-12 33 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