0

I want to get the google page rank for the given domain.

I used the following code google api code to get the pagerank.I got the page rank before.Today when i tried the to run the same file i got the some issues and canot get the correct page rank.

import java.net.URLConnection;
import java.net.URL;
import java.io.InputStream;

/**
 * <b>PageRankService provides simple API to Google PageRank Technology</b>
 * <br>
 * PageRankService queries google toolbar webservice and returns a
 * google page rank retrieved from one of the next datacenters on the list.
 * <br>toolbarqueries.google.com
 * <br>64.233.161.100
 * <br>64.233.161.101
 * <br>64.233.177.17
 * <br>64.233.183.91
 * <br>64.233.185.19
 * <br>64.233.189.44
 * <br>66.102.1.103
 * <br>66.102.9.115
 * <br>66.249.81.101
 * <br>66.249.89.83
 * <br>66.249.91.99
 * <br>66.249.93.190
 * <br>72.14.203.107
 * <br>72.14.205.113
 * <br>72.14.255.107
 */
public class PageRankService {

    static private int dataCenterIdx = 0;

    /**
     * List of available google datacenter IPs and addresses
     */
    static final public String [] GOOGLE_PR_DATACENTER_IPS = new String[]{
                "64.233.161.100",
                "64.233.161.101",
                "64.233.177.17",
                "64.233.183.91",
                "64.233.185.19",
                "64.233.189.44",
                "66.102.1.103",
                "66.102.9.115",
                "66.249.81.101",
                "66.249.89.83",
                "66.249.91.99",
                "66.249.93.190",
                "72.14.203.107",
                "72.14.205.113",
                "72.14.255.107",
                "toolbarqueries.google.com",
                };

    /**
     * Default constructor
     */
    public PageRankService() {

    }

    /**
     * Must receive a domain in form of: "http://www.domain.com"
     * @param domain - (String)
     * @return PR rating (int) or -1 if unavailable or internal error happened.
     */
    public int getPR(String domain) {

        int result = -1;
        JenkinsHash jHash = new JenkinsHash();

        String googlePrResult = "";

        long hash = jHash.hash(("info:" + domain).getBytes());

        String url = "http://"+GOOGLE_PR_DATACENTER_IPS[dataCenterIdx]+"/search?client=navclient-auto&hl=en&"+
                "ch=6"+hash+"&ie=UTF-8&oe=UTF-8&features=Rank&q=info:" + domain;

        try {
            URLConnection con = new URL(url).openConnection();
            InputStream is = con.getInputStream();
            byte [] buff = new byte[1024];
            int read = is.read(buff);
            while (read > 0) {
                googlePrResult = new String(buff, 0, read);
                read = is.read(buff);
            }
            googlePrResult = googlePrResult.split(":")[2].trim();
            result = new Long(googlePrResult).intValue();
        } catch (Exception e) {
            e.printStackTrace();
        }

        dataCenterIdx++;
        if (dataCenterIdx == GOOGLE_PR_DATACENTER_IPS.length) {
            dataCenterIdx = 0;
        }

        return result;

    }

    public static void main(String [] args) {
        long start = System.currentTimeMillis();
        PageRankService prService = new PageRankService();
        String domain = "http://www.gmail.com";
        if (args.length > 0) {
            domain = args[0];
        }
        System.out.println("Checking " + domain);
        System.out.println("Google PageRank: " + prService.getPR(domain));
        System.out.println("Took: " + (System.currentTimeMillis() - start) + "ms");
    }
}

But today i cant get the page rank .I am getting the following error:

Checking http://www.google.com
Google PageRank: -1
java.io.IOException: Server returned HTTP response code: 504 for URL: http://64.233.161.100/search?client=navclient-auto&hl=en&ch=63513778613&ie=UTF-8&oe=UTF-8&features=Rank&q=info:http://www.google.com
Took: 179711ms
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1625)
    at PageRankService.getPR(PageRankService.java:82)
    at PageRankService.main(PageRankService.java:112)
BUILD SUCCESSFUL (total time: 3 minutes 0 seconds)

Where i am going wrong?

ashu
  • 1,339
  • 7
  • 27
  • 43
  • HTTP 504 [Gateway Timeout](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.5) – miku Jan 03 '13 at 07:39

1 Answers1

0

I'm not an expert, but try to use http://toolbarqueries.google.com/tbr? instead of /search

Theresa
  • 3,515
  • 10
  • 42
  • 47