Comment obtenir le classement Alexa en Java

Comment obtenir le classement Alexa en Java

alexa ranking

Dans cet exemple, nous vous montrons comment utiliser l'analyseur Java et DOM XML pour obtenir le classement Alexa sous l'API non documentée:

http://data.alexa.com/data?cli=10&url=domainName

1. API Alexa

Par exemple, saisissez l'URL suivante dans votre navigateur:

http://data.alexa.com/data?cli=10&url=example.com

Alexa renverra le résultat XML suivant:













Reportez-vous à l'élément «POPULARITY», la valeur de l'attribut «TEXT» est le classement Alexa.

2. API Java, DOM et Alexa

En Java, il suffit d'envoyer une requête HTTP normale à l'API et d'utiliser l'analyseur XML pour obtenir le classement Alexa.

AlexaSEO.java

package com.example.seo;

import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class AlexaSEO {

    public static void main(String[] args) {

        AlexaSEO obj = new AlexaSEO();
        System.out.println("Ranking : " + obj.getAlexaRanking("example.com"));

    }

    public int getAlexaRanking(String domain) {

        int result = 0;

        String url = "http://data.alexa.com/data?cli=10&url=" + domain;

        try {

            URLConnection conn = new URL(url).openConnection();
            InputStream is = conn.getInputStream();

            DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance()
                    .newDocumentBuilder();
            Document doc = dBuilder.parse(is);

            Element element = doc.getDocumentElement();

            NodeList nodeList = element.getElementsByTagName("POPULARITY");
            if (nodeList.getLength() > 0) {
                Element elementAttribute = (Element) nodeList.item(0);
                String ranking = elementAttribute.getAttribute("TEXT");
                if(!"".equals(ranking)){
                    result = Integer.valueOf(ranking);
                }
            }

        } catch (Exception e) {
            System.out.println(e.getMessage());
        }

        return result;
    }
}

Résultat :

Ranking : 10720

Mon site Webexample.com est classé10720 dans Alexa, pas mal.