如何通过编程方式获取alexa排名的数据

Alexa 是以发布世界网站排名而引人注目的一个网站。其实,此网站的搜索引擎也很好用,但是“网站排名”却是它吸引眼球的最主要原因。 
    以网站导航起家的Alexa创建于1996年4月,他们的目的是让Internet冲浪者在分享虚拟世界资源的同时,更多地参与Internet资源的组织。2002年5月Alexa放弃了自己的搜索引擎与Google合作。他们每天在网上搜集超过1,000GB的信息,然后进行整合发布。现在他们搜集的URL数量已经超过了Google。下图是他们自己给出的一个信息量比较图。纵轴为已有的URL地址的量,以十亿为单位。也就是说在量上,Alexa位居世界四大名搜索引擎第一位,已经超过了350亿。焦点在于,Alexa不仅给出这350多亿网址的链接,而且为其中的每一个网站进行了排名。可以说,Alexa是当前拥有URL数量最庞大,排名信息发布最详尽的网站。   
  Alexa的世界网站排名主要分两种:综合排名,可以叫做绝对排名,即特定的一个网站在所有350多亿网站中的名次。Alexa每三个月公布一次新的网站综合排名。此排名的依据是用户链接数(Users Reach)和页面浏览数(Page Views)三个月累积的几何平均值。分类排名一是按主题分类,比如新闻、娱乐、购物等,Alexa给出某个特定网站在同一类网站中的名次。Alexa将其收集到的网站共分了16个大类,每个类下又分为多个主题。 

      阿里妈妈的网站也有Alexa网站排名(http://tool.alimama.com/site.php)、中国站长网站(http://alexa.chinaz.com/Index.asp)也提供Alexa排名查询,还有很多网站也提供了它们的Alexa排名,这些排名的数据都是通过调用称为Alexa Web Information Service (AWIS)的服务,地址是http://awis.amazonaws.com/doc/2005-07-11/AWSAlexa.wsdl
    那么我们如何才能使用这些服务,以便创建我们的Alexa排名查询操作呢?
  1. 首先你通过网站连接http://www.amazon.com/gp/browse.html?node=12782661,了解它是做什么的,收费如何(1000次约人民币1元左右)。
  2. 注册一个帐号,绑定您的银行卡或者信用卡
  3. 成功后会给你一个发送一个邮件,并可以登录查看你的专用公钥私钥字符串。

4. 根据这些你就可以访问它的AWIS访问了,如果你要了解进一步的开发的话,请参考这里的文档:
http://docs.amazonwebservices.com/AlexaWebInfoService/2005-07-11/
5. 如果你有疑问,可以在论坛中询问,当然都是老外的了。http://developer.amazonwebservices.com/connect/forum.jspa?forumID=14
6.   AWIS有很多Response,如UrlInfoResponseResponse、CategoryBrowseResponseResponse、SitesLinkingInResponseResponse、TrafficHistoryResponseResponse、CategoryListingsResponseResponse、CrawlResponseResponse等,这些包含了各类排名等数据。
7. 我调用了AWIS做了一个小的测试应用,程序界面如下:

8. 最后贴一些代码辅助大家

        #region 获取Response的信息

        public UrlInfoResponseResponse GetUrlInfoResponse(string website, string action, string responseGroup)
        {
            string timestamp = Helper.GetTimestamp();
            string signature = Helper.MakeSignature(action + timestamp, privateKey);

            //Set the request security settings
            UrlInfoRequestSecurity usecurity = new UrlInfoRequestSecurity();
            usecurity.AWSAccessKeyId = publicKey;
            usecurity.Signature = signature;
            usecurity.Timestamp = timestamp;

            UrlInfoRequest request = new UrlInfoRequest();
            request.Url = website;
            request.ResponseGroup = responseGroup;
            request.Security = usecurity;

            UrlInfo urlInfo = new UrlInfo();
            urlInfo.Request = request;

            AWSAlexa alexa = new AWSAlexa();
            UrlInfoResponse uresponse = alexa.UrlInfo(urlInfo);

            return uresponse.Response;
        }

        public CategoryBrowseResponseResponse GetCategoryBrowseResponse(string website, string action, string responseGroup, string path, bool description)
        {
            string timestamp = Helper.GetTimestamp();
            string signature = Helper.MakeSignature(action + timestamp, privateKey);

            //Set the request security settings
            CategoryBrowseRequestSecurity usecurity = new CategoryBrowseRequestSecurity();
            usecurity.AWSAccessKeyId = publicKey;
            usecurity.Signature = signature;
            usecurity.Timestamp = timestamp;

            CategoryBrowseRequest request = new CategoryBrowseRequest();
            request.ResponseGroup = responseGroup;
            request.Security = usecurity;
            request.Path = path;
            request.Descriptions = description.ToString();

            CategoryBrowse browse = new CategoryBrowse();
            browse.Request = request;

            AWSAlexa alexa = new AWSAlexa();
            CategoryBrowseResponse uresponse = alexa.CategoryBrowse(browse);

            return uresponse.Response;
        }

        public SitesLinkingInResponseResponse GetSitesLinkingInResponse(string website, string action, string responseGroup)
        {
            string timestamp = Helper.GetTimestamp();
            string signature = Helper.MakeSignature(action + timestamp, privateKey);

            //Set the request security settings
            SitesLinkingInRequestSecurity usecurity = new SitesLinkingInRequestSecurity();
            usecurity.AWSAccessKeyId = publicKey;
            usecurity.Signature = signature;
            usecurity.Timestamp = timestamp;

            SitesLinkingInRequest request = new SitesLinkingInRequest();
            request.ResponseGroup = responseGroup;
            request.Security = usecurity;
            request.Url = website;

            SitesLinkingIn browse = new SitesLinkingIn();
            browse.Request = request;

            AWSAlexa alexa = new AWSAlexa();
            SitesLinkingInResponse uresponse = alexa.SitesLinkingIn(browse);

            return uresponse.Response;
        }

        public TrafficHistoryResponseResponse GetTrafficHistoryResponse(string website, string action, string responseGroup)
        {
            string timestamp = Helper.GetTimestamp();
            string signature = Helper.MakeSignature(action + timestamp, privateKey);

            //Set the request security settings
            TrafficHistoryRequestSecurity usecurity = new TrafficHistoryRequestSecurity();
            usecurity.AWSAccessKeyId = publicKey;
            usecurity.Signature = signature;
            usecurity.Timestamp = timestamp;

            TrafficHistoryRequest request = new TrafficHistoryRequest();
            request.ResponseGroup = responseGroup;
            request.Security = usecurity;
            request.Url = website;

            TrafficHistory browse = new TrafficHistory();
            browse.Request = request;

            AWSAlexa alexa = new AWSAlexa();
            TrafficHistoryResponse uresponse = alexa.TrafficHistory(browse);

            return uresponse.Response;
        }

        public CategoryListingsResponseResponse GetCategoryListingsResponse(string website, string action, string responseGroup, string path, bool recursive)
        {
            string timestamp = Helper.GetTimestamp();
            string signature = Helper.MakeSignature(action + timestamp, privateKey);

            //Set the request security settings
            CategoryListingsRequestSecurity usecurity = new CategoryListingsRequestSecurity();
            usecurity.AWSAccessKeyId = publicKey;
            usecurity.Signature = signature;
            usecurity.Timestamp = timestamp;

            CategoryListingsRequest request = new CategoryListingsRequest();
            request.ResponseGroup = responseGroup;
            request.Security = usecurity;
            request.Path = path;//this.cmbListingPath.Text
            request.Recursive = recursive.ToString();//this.chkRecurse.Checked.ToString();

            CategoryListings browse = new CategoryListings();
            browse.Request = request;

            AWSAlexa alexa = new AWSAlexa();
            CategoryListingsResponse uresponse = alexa.CategoryListings(browse);

            return uresponse.Response;
        }

        public CrawlResponseResponse GetCrawlResponse(string website, string action, string responseGroup)
        {
            string timestamp = Helper.GetTimestamp();
            string signature = Helper.MakeSignature(action + timestamp, privateKey);

            //Set the request security settings
            CrawlRequestSecurity usecurity = new CrawlRequestSecurity();
            usecurity.AWSAccessKeyId = publicKey;
            usecurity.Signature = signature;
            usecurity.Timestamp = timestamp;

            CrawlRequest request = new CrawlRequest();
            request.ResponseGroup = responseGroup;
            request.Security = usecurity;
            request.Url = website;

            Crawl browse = new Crawl();
            browse.Request = request;

            AWSAlexa alexa = new AWSAlexa();
            CrawlResponse uresponse = alexa.Crawl(browse);

            return uresponse.Response;
        }

        #endregion

本文转自博客园伍华聪的博客,原文链接:如何通过编程方式获取alexa排名的数据,如需转载请自行联系原博主。

时间: 2024-07-31 15:31:54

如何通过编程方式获取alexa排名的数据的相关文章

Android编程实现获取新浪天气预报数据的方法_Android

本文实例讲述了Android编程实现获取新浪天气预报数据的方法.分享给大家供大家参考,具体如下: 新浪天气预报地址: http://php.weather.sina.com.cn/xml.php?city=武汉&password=DJOYnieT8234jlsK&day=0 其中,city后的城市可用java.net.URLEncoder.encode("武汉"," gb2312");也可以直接写"武汉",但不能用"wu

Android编程实现获取新浪天气预报数据的方法

本文实例讲述了Android编程实现获取新浪天气预报数据的方法.分享给大家供大家参考,具体如下: 新浪天气预报地址: http://php.weather.sina.com.cn/xml.php?city=武汉&password=DJOYnieT8234jlsK&day=0 其中,city后的城市可用java.net.URLEncoder.encode("武汉"," gb2312");也可以直接写"武汉",但不能用"wu

asp获取alexa排名小偷源代码

排名|源代码|alexa 1.通过xmlhttp读取http://client.alexa.com/common/css/scramble.css该页面的内容,当然,我们也可以直接把这个页面保存到本地使用,但是我们不能保证alexa是否会重新修改该css样式,所以我们实时读取http://client.alexa.com/common/css/scramble.css该页面的内容的方案比较可靠点,我们将页面内容存入变量strAlexaCss中.        2.通过xmlhttp读取http:

C#编程方式获取计算机主板序列号

建立一个控制台应用程序,添加对程序集System.Management的引用,代码如下 using System;using System.Collections.Generic;using System.Text;using System.Management;namespace ConsoleApplication1 { class Program { static void Main(string[] args) { PrintMotherBoardInfo(); Console.Writ

编程方式 获取ApplicationContext实例

 基于Spring的Java应用会通过ApplicationContext接口提供应用程序配置.我们常常需要在代码中获取当前的ApplicationContext.如在集成测试时,需要通过ApplicationContext获取各种Bean.这时可以使用FileSystemXmlApplicationContext通过提供配置文件的路径,来得到应用程序上下文: String[] paths ={"applicationContext.xml",...}; ApplicationCont

PHP使用Alexa API获取网站的Alexa排名例子_php实例

我们通会用Alexa的网站(或其它站长工具网站)来栓查我们的网​站流量排名,这样就必须去那些网站.实际上,可以通过Alexa XML API 获取网站的Alexa相关的数据(XML格式的),再使用XML解析器来解析Alexa返回的XML,得到Alexa排名或其它的数据. Alexa接口 Alexa的XML API接口是:http://data.alexa.com/data?cli=10&url=%YOUR_URL% 如果想获取更多的数据可以用:http://data.alexa.com/data

Alexa排名下降原因以及解决方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 Alexa排名对很多站长而言,或许可以成为一个 忽略的问题,但还是不能否认Alexa排名价值所在.尤其是越来越多的站点开设了alexa互刷排名,令人对其排名产生怀疑.我一直没有排斥自身网站提高alexa排名的方法,但我从不采用互刷的作弊的形式来提升.给个人制定博客年度总目标就是 alexa排名进入前十万名,至于能否达到,以平常心待之. 前段时

侠客站长站alexa排名被阿里妈妈清零?

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断淘宝客 站长团购 云主机 技术大厅 今天,我像往常一样打开侠客站长站下载模板,突然兴致所致,我到zzxgj.com上面查询了一下自己网站的alexa排名,同时也顺便查看了一下xkzzz.com的排名.突然发现排名显示结果如下: 从上图看出,看得见趋势图,却看不到数据,无论我多少次重复查询,始终看不见数据.这就引发了我强烈的好奇心. 笔者到网上寻找各类alexa排名查询源

论Alexa排名与网站SEO优化的关系

论Alexa排名与网站SEO优化的关系 Alexa排名是目前比较权威的世界排名网站,主要分为综合排名和分类排名,Alexa提供了包括综合排名.到访量排名.页面访问量排名等多个评价指标信息,大多数站长或SEO人把它当作较为权威的网站访问量评价指标. Alexa 如果你是一个站长或者SEOer,对于Alexa工具应该一点都不会陌生,在国内甚至有很多的公司或者个人专门提供Alexa排名的收费服务,或者一些免费刷Alexa排名的工具等等. 虽然Alexa排名并不能代表网站在搜索引擎的排名,但也是非常的有