2016-05-12 7 views
0

これで、記事内のリンクをスクラップするコードを作成しました。リンクのクリック数も必要です。助けてもらえますか?あなたが使用しているクエリは明らかにあなたにそのメインの記事の記事へ"Abdominal_pain"リンクの束を与えるリンクのクリック数をwikipediaから取得する方法は?

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

: はソウまでは、このコードを持っています。

さらに進んで、すべてのリンクをループする必要があります。あなたは現在行っているようにStringsを解析する代わりにJSONObjectsを使用することで、あなたの人生をもっと簡単にすることができます。詳細は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 
} 

あなたはタイトルを持ってたら、そのページの情報を取得することができます。

{"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のどこかである:例えば、クエリURLは、このJSONを返すhttps://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/en.wikipedia/all-access/all-agents/Abdominal_pain/daily/20151010/20151012です。

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

関連する問題