Как получить Alexa Рейтинг в Java

В этом примере мы покажем вам, как использовать синтаксический анализатор Java и DOM XML для получения рейтинга Alexa из-за недокументированного API:
http://data.alexa.com/data?cli=10&url=domainName
1. Alexa API
Например, введите следующий URL в вашем браузере:
http://data.alexa.com/data?cli=10&url=example.com
Alexa вернет обратно следующий результат XML:
Обратитесь к элементу «POPULARITY», значение атрибута «TEXT» - это рейтинг Alexa.
2. Java, DOM и Alexa API
В Java просто отправьте нормальный HTTP-запрос к API и используйте анализатор XML для получения рейтинга 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;
}
}
Результат:
Ranking : 10720
Мой сайтexample.com имеет рейтинг10720 в Alexa, неплохо.