C #-407
class B{void Main(string[] a){var o=0;for(int i=1;i<11;i++){var r=((System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(new Uri(string.Format(a[0]+"&page={0}",i)))).GetResponse();if(r.ContentLength>0){using(var s=new StreamReader(r.GetResponseStream()))foreach(Match m in Regex.Matches(s.ReadToEnd(),"bounty worth (.+?) "))o+=int.Parse(m.Value.Substring(m.Value.IndexOf('h')+2));}}Console.Write(o);}}
Stackoverflow.com 사용 Gzip 압축 해제 및 다른 정규 표현식을 제외하고는 아래와 동일합니다.
테스트
> prog.exe http://stackoverflow.com/questions?pagesize=50&sort=featured
38150
이상하게도 아래와 다른 값을 얻습니다.
C #-496
이것은 gzipped 및 json 인 api.stackexchange를 사용합니다.
using System.IO.Compression;class B{void Main(string[] a){var o=0;for(int i=1;i<11;i++){var r=((System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(new Uri(string.Format(a[0]+"&page={0}",i)))).GetResponse();if(r.ContentLength>0)using(var s=new StreamReader(new GZipStream(r.GetResponseStream(),CompressionMode.Decompress)))foreach(Match m in Regex.Matches(s.ReadToEnd(),@"bounty_amount"":(.+?),"))o+=int.Parse(m.Value.Substring(m.Value.IndexOf(':')+1).Replace(",",""));}Console.Write(o);}}
미완성 :
using System.IO.Compression;
class B
{
void Main(string[] a)
{
var o = 0;
for (int i=1; i<11; i++) {
var w = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(new Uri(string.Format(a[0]+"&page={0}",i)));
if(w.GetResponse().ContentLength > 0)
using(var s = new StreamReader(new GZipStream(w.GetResponse().GetResponseStream(),CompressionMode.Decompress)))
foreach(Match m in Regex.Matches(s.ReadToEnd(), @"bounty_amount"":(.+?),"))
o += int.Parse(m.Value.Substring(m.Value.IndexOf(':')+1).Replace(",", ""));
}
Console.Write(o);
}
}
테스트
기본 페이지 크기 :
> prog.exe http://api.stackexchange.com/2.2/questions/featured?site=stackoverflow
25300
페이지 크기 = 100 :
> prog.exe "http://api.stackexchange.com/2.2/questions/featured?site=stackoverflow&pagesize=100"
37400