如何在Java中获得Alexa排名

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中,只需向API发送普通的HTTP请求,然后使用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 ,不错。

参考文献

  1. 提取Alexa数据
  2. 如何在Java中获取Google PageRank
  3. 如何在Java中读取XML文件-(DOM解析器)

翻译自: https://mkyong.com/java/how-to-get-alexa-ranking-in-java/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值