我对此有点新手......基本上我需要运行一个脚本来从谷歌趋势下载.csv文件。我根据这个reference编写了以下代码,代码如下:
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("https://www.google.com/accounts/ClientLogin");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>;
nameValuePairs.add(new BasicNameValuePair("Email", "myEmail"));
nameValuePairs
.add(new BasicNameValuePair("Passwd", "myPasswd"));
nameValuePairs.add(new BasicNameValuePair("accountType", "GOOGLE"));
nameValuePairs.add(new BasicNameValuePair("source",
"Google-cURL-Example"));
nameValuePairs.add(new BasicNameValuePair("service", "xapi"));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(post);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = "";
while ((line = rd.readLine()) != null) {
System.out.println(line);
if (line.startsWith("SID=")) {
String key = line.substring(4);
// Do something with the key
} catch (Exception e) {
}
我获得了有关SID,LSID,Auth的信息,但不知道如何使用这些信息。我想我应该在以下请求中添加这些cookie,但不知道具体如何。我写了另一段代码来连接到某个网址,但我不断收到此消息“您必须登录才能从Google趋势中导出数据。”如果有帮助,代码就在这里:
URL url = new URL(myUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setInstanceFollowRedirects(true);
conn.addRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.addRequestProperty("Authorization", "SID"+key);
conn.addRequestProperty("Email", "myEmail");
conn.addRequestProperty("Passwd", "myPasswd");
conn.setReadTimeout(5000);
conn.connect();
我四处搜索,发现一些有用的信息,有人可以提供帮助吗?
答案 0 :(得分:0)
是否必须使用Java?在python中,它就像这样简单:
from pyGTrends import pyGTrends
connector = pyGTrends('google username','google password')
connector.download_report(('keyword1', 'keyword2'))
print connector.csv()
如果必须是Java,您可能需要查看Apache的HttpClient examples。 “基于表单的登录”和“客户端身份验证”可能都是相关的。
答案 1 :(得分:0)
我刚刚编写了这个代码:
https://github.com/elibus/j-google-trends-api
这是Google Trends API的非官方Java实现。您可以使用它轻松访问Google趋势,或者您可能希望查看代码以查看其有效。
无论如何,身份验证流程的工作原理如下(所有步骤都是必需的):
然后,您可以通过宽松的QoS政策为经过身份验证的用户访问Google趋势。