3

私はこれに初心者のようなものです...基本的に、Googleトレンドから.csvファイルをダウンロードするスクリプトを実行する必要があります。このリファレンスに従って次のコードを書きました。コードは次のようになります。

     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 を追加する必要があると思いますが、正確な方法はわかりません。特定の URL に接続する別のコードを書きましたが、「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();

私は周りを検索しましたが、役立つ情報はほとんど見つかりませんでした。

4

2 に答える 2

0

私はちょうどこれをコーディングしました:

https://github.com/elibus/j-google-trends-api

これは、Google Trends API の非公式な Java 実装です。これを使用して Google トレンドに簡単にアクセスしたり、コードを見て動作を確認したりすることができます。

とにかく、認証フローは次のように機能します (すべての手順が必要です)。

  1. https://accounts.google.com/ServiceLoginAuthを取得し、GALX ID を解析します
  2. ユーザー名/パスワード + GALX を投稿
  3. http://www.google.comを入手

その後、認証されたユーザーに対して緩和された QoS ポリシーを使用して Google トレンドにアクセスできます。

于 2013-07-04T09:06:15.910 に答える
0

それはJavaでなければなりませんか?Python では、次のように簡単です。

from pyGTrends import pyGTrends

connector = pyGTrends('google username','google password')
connector.download_report(('keyword1', 'keyword2'))
print connector.csv()

Google Trends API ライブラリが必要です。

Java でなければならない場合は、ApacheのHttpClient の例を参照してください。「フォームベースのログオン」と「クライアント認証」の両方が関連している可能性があります。

于 2013-01-15T10:27:41.513 に答える