В этом примере мы покажем вам, как использовать синтаксический анализатор Java и DOM XML для получения рейтинга Alexa ниже недокументированного API:
http://data.alexa.com/data?cli=10&url=domainName
1. API-ИНТЕРФЕЙС Alexa
Например, введите следующий URL-адрес в своем браузере:
http://data.alexa.com/data?cli=10&url=mkyong.com
Alexa вернется обратно после XML-результата:
Обратитесь к элементу ” ПОПУЛЯРНОСТЬ “, значение атрибута ” ТЕКСТ ” – это рейтинг Alexa.
2. API Java, DOM и Alexa
В Java просто отправьте обычный HTTP-запрос в API и используйте анализатор XML, чтобы получить рейтинг Alexa.
package com.mkyong.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("mkyong.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
Мой сайт mkyong.com ранжируется 10720 по-моему, неплохо.
Рекомендации
- Получение данных Alexa
- Как получить Google PageRank на Java
- Как Читать XML–Файл На Java – (DOM-Анализатор)
Оригинал: “https://mkyong.com/java/how-to-get-alexa-ranking-in-java/”