我正在尝试构建一个使用谷歌趋势和/或谷歌洞察数据的网络应用程序,但我遇到了一些障碍。仅当您登录有效的 Google 帐户时,Google 趋势才允许您下载 csv 文件。因此,我无法让我的网络应用程序下载并解析它们。
这让我开始研究 OAuthhttp://code.google.com/apis/accounts/docs/OAuth.html,但我有点不知所措。
尝试使用谷歌趋势网址http://googlecodesamples.com/oauth_playground/为 google 趋势 url 生成无效范围错误。
我可以不使用Oauth来访问这些服务吗?我已经进行了大量搜索,但还没有找到任何真正可靠的示例(至少是我能理解的示例)来说明如何正确使用它。有一个更好的方法吗?
有人帮我解决这个问题吗?
截至 2013 年 4 月 30 日,此功能有效。请注意,使用此方法您很快就达到了他们的配额。
static void Main(string[] args)
{
using (var client = new WebClient())
{
var terms = new List<string>() {"debt", "profit", "euro", "dollar", "financial", "economy", "federal reserve", "earnings", "fed", "consumer spending" , "employment", "unemployment", "jobs" };
var username = "your username";
var password = "password";
var response = client.DownloadString(string.Format("https://www.google.com/accounts/ClientLogin?accountType=GOOGLE&Email={0}&Passwd={1}&service=trendspro&source=test-test-v1", username, password));
// The SID is the first line in the response
// The Auth line
var auth = response.Split('\n')[2];
client.Headers.Add("Authorization", "GoogleLogin " + auth);
int i = 1;
while (terms.Count > 0)
{
// google limits 5 sets of terms per request
var arr = terms.Take(5).ToArray();
terms = terms.Skip(5).ToList();
var joined = string.Join("%2C%20", arr);
byte[] csv = client.DownloadData(string.Format("http://www.google.com/trends/trendsReport?hl=en-US&q={0}&cmpt=q&content=1&export=1", joined));
// TODO: do something with the downloaded csv file:
Console.WriteLine(Encoding.UTF8.GetString(csv));
File.WriteAllBytes(string.Format("report{0}.csv", i), csv);
i++;
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)