JavaのAlexaランキングを取得する方法
この例では、JavaとDOM XMLパーサを使用して、文書化されていないAPIの下からAlexaランキングを取得する方法を示します。
http://data.alexa.com/data?cli=10&url=domainName
1. Alexa API
たとえば、ブラウザに次のURLを入力します。
http://data.alexa.com/data?cli=10&url=mkyong.com
Alexaは次のXML結果に戻ります:
<ALEXA VER="0.9" URL="mkyong.com/" HOME="0" AID="="> <DMOZ> <SITE BASE="mkyong.com/" TITLE="J2EE Web Development" DESC="Java/J2EE Web Development Tutorials, which involve Spring, Hibernate, Struts, Maven, jUnit, TestNG, jQuery..."> <CATS/> </SITE> </DMOZ> <SD> <POPULARITY URL="mkyong.com/" TEXT="10720" SOURCE="panel"/> <REACH RANK="7924"/> <RANK DELTA="+600"/> <COUNTRY CODE="IN" NAME="India" RANK="3542"/> </SD> </ALEXA>
要素「
POPULARITY
」を参照し、「
TEXT
」属性の値はAlexaランキングです。
2. Java、DOM、Alexa API
Javaでは、通常のHTTPリクエストをAPIに送信し、XMLパーサーを使用してAlexaランキングを取得します。
AlexaSEO.java
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]はAlexaで
10720
位にランクされていますが、悪くありません。
参考文献
アレクサデータ]。リンク://java/how-to-get-google-pagerank-pr-in-java/[Googleの入手方法
JavaのPageRank]。 link://java/how-to-read-xml-file-in-java-dom-parser/[XMLを読む方法
Javaのファイル – (DOMパーサー)]