oruji.github.io
oruji.github.ioPersian Tutorials
ویرایش: 1398/10/8 21:22
A A

نحوه بدست آوردن رنکینگ Alexa Rank در جاوا

در این آموزش از کتاب برخط جاوا، مثالی درباره نحوه استفاده از جاوا و DOM XML Parser برای بدست آوردن رنکینگ الکسا (Alexa) از API زیر نشان داده می شود:

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

1. Alexa API

برای مثال URL زیر را در مرورگر خود تایپ کنید:

http://data.alexa.com/data?cli=10&url=oruji.github.io

Alexa نتیجه XML زیر را برمی گرداند:

<ALEXA VER="0.9" URL="oruji.github.io/" HOME="0" AID="=" IDN="oruji.github.io/"> <SD> <POPULARITY URL="oruji.github.io/" TEXT="1089926" SOURCE="panel"/> <REACH RANK="996038"/> <RANK DELTA=" 208104"/> <COUNTRY CODE="IR" NAME="Iran" RANK="49290"/> </SD> </ALEXA>

با توجه به تگ "POPULARITY"، مقدار attribute با عنوان "TEXT" رنکیگ Alexa می باشد.

2. جاوا، DOM و Alexa API

درون جاوا، تنها یک درخواست HTTP معمولی به API ارسال کنید، و با استفاده از XML Parser رنکینگ Alexa را بدست آورید:

package org.amoozesh; 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("oruji.github.io")); } 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 : 320049

مثال فوق رنکیگ الکسای وب سایت oruji.github.io را نشان می دهد.

منابع

  • Fetching Alexa data