⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alexaseeker.java

📁 自己写的用java实现alexa排名查询的一个类文件
💻 JAVA
字号:
/*
 * AlexaSeeker.java
 *
 * Created on 2008年1月22日, 上午8:17
 * @author jackery
 * qq 41832143
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package com.j2mehome.tools.siteinfo;

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

/**
 * 
 * @author Administrator
 */
public class AlexaSeeker {
	public static final String baseURL = "http://data.alexa.com/data?cli=10&dat=snba&url=";

	/** Creates a new instance of AlexaSeeker */
	public AlexaSeeker() {
	}

	/**
	 * getValues(String node1,String attrib,String
	 * webadd),node1为XML的节点,attrib为节点的属性,webadd为要测试的网址
	 * 本方法只能得到SD节点内的子节点属性的值,所有的node,attrib这两值都必需是SD节点里的东东的,呵呵
	 * 
	 * @param node1
	 *            XML的节点,必须是SD节点里的东东
	 * @param attrib
	 *            节点的属性
	 * @param webadd
	 *            为要测试的网址
	 * @return 返回Alexa值
	 */
	public String getValues(String node1, String attrib, String webadd) {
		String sd = "SD";
		String totalURL = ""; // 用来处理的总的网址
		URL url = null;
		URLConnection conn = null;
		Document doc = null; // 存放XML文件的对象
		DocumentBuilderFactory factory; // 定义工厂API,使应用程序能够从 XML 文档获取生成 DOM
										// 对象树的解析器
		DocumentBuilder docBuilder = null; // 定义 API, 使其从 XML 文档获取 DOM 文档实例
		Element root;
		totalURL = baseURL + webadd;
		System.out.println(totalURL);
		try {
			url = new URL(totalURL);
			conn = url.openConnection();
			conn.connect();

			factory = DocumentBuilderFactory.newInstance();
			factory.setValidating(false); // 指定由此代码生成的解析器将验证被解析的文档。
			try {
				docBuilder = factory.newDocumentBuilder();
			} catch (ParserConfigurationException ex) {
				ex.printStackTrace();
			}
			try {
				doc = docBuilder.parse(conn.getInputStream());
			} catch (IOException ex) {
				ex.printStackTrace();
			} catch (SAXException ex) {
				ex.printStackTrace();
			}
			System.out.println("parse successfull");
			root = doc.getDocumentElement(); // 该属性允许直接访问文档的文档元素的子节点。得到XML文档的根节点
			NodeList allchildnodes = root.getChildNodes(); // 得到子节点
			for (int i = 0; i < allchildnodes.getLength(); i++) { // 循环所有子节点

				Node eachno = allchildnodes.item(i); // 得到每一个节点
				if (eachno.getNodeType() == Node.ELEMENT_NODE) {
					if (eachno.getNodeName() == sd) { // 获得SD这个节点,SD节点里有一个节点属性包含了排名值
						NodeList sbnodes = eachno.getChildNodes();// 得到SD节点的所有子节点放入sbnodes中
						for (int j = 0; j < sbnodes.getLength(); j++) {// 循环判断SD的子节点
							Node sbnode = sbnodes.item(j);
							if (sbnode.getNodeName() == node1) { // 如果子节点是传入的第一个参数的话
								String value = sbnode.getAttributes()
										.getNamedItem(attrib).getNodeValue();
								System.out.println(sbnode.getAttributes()
										.getNamedItem(attrib).getNodeValue());
								return value;
							}
						}

					}
				}
			}

		} catch (IOException ex) {
			ex.printStackTrace();
		}

		return null;

	}

	/**
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		AlexaSeeker a = new AlexaSeeker();
		System.out.println(a.getValues("POPULARITY", "TEXT",
				"http://www.j2mehome.com"));
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -