?
商務熱線:0371-63360829

讓你的網站脫穎而出:構建自己的Aleax查詢服務

發布時間:2015-10-29 點擊數:4512

每個網站的站長都會想盡辦法提升網站的流量,從而獲得更高的廣告收入。那么評判一個網站好壞的標準,如Google的PR(PageRank),百度權重等。從PV(Page View)流量的角度,一個非常重要指標就是Alexa網站排名。

同全球的網站相比,你就能了解到自己網站的位置,讓我們先擠進全球前10萬的排名吧,不然都不好意思跟同行說,“自己有一個網站”。

目錄

1. Alexa介紹

2. 用Node開發Alexa服務

3. 作者介紹

1. Alexa介紹

Alexa (http://www.alexa.com/)是一家發布世界網站排名的網站,以搜索引擎起家的Alexa創建于1996年4月(美國),目的是讓互聯網網友在分享虛擬世界資源的同時,更多地參與互聯網資源的組織。Alexa每天在網上搜集超過1TB的信息,不僅給出多達幾十億的網址鏈接,而且為其中的每一個網站進行了排名。可以說,Alexa是當前擁有URL數量最龐大,排名信息發布最詳盡的網站。

1999年,Alexa被美國電子商務旗艦企業“亞馬遜”收購,成為后者的全資子公司。2002年春,Alexa放棄了自己的搜索引擎,轉而與Google合作。

Alexa提供了網站流量統計的服務,對全球有域名的網站進行流量記錄。也就是說,只要你申請了域名,在Alexa中就可以查詢到你的網站的排名。Alexa的網站排名是按照每個特定網站的被瀏覽率進行排名的。瀏覽率越大,排名越靠前。

網站優化 網站排名 Aleax查詢 百度權重 提升網站流量 

通常情況,如果你的域名剛剛注冊,排名在1千萬以上;接下來,你每天都經心運營網站,小有起色時,排名會進入前1百萬;然后,你繼續發布優質內容,堅持了一段時間,排名會升至前50萬;當你的網站在某一領域小有名氣時,排名可以到達10萬,如粉絲日志122616(2015-10-25),這時就會有廣告主愿意來投放廣告了;如果你做的是以盈利為目的的網站,那么你需要再加油,進入到前1萬,這個時候你的流量已經可以為你帶來生意了;如果能做的更好,排名進入前2000,像雪球排名到2109(2015-10-25),那么你將會有一個很高的估值了;如果能趕上一個天大的機遇,你的網站排名到了前100,那么你的網站將給你帶來上市公司的價值,如京東105(2015-10-25);如果你是天才型的CEO,網站進了前10名,那么你將會成為一個產業的領袖,甚至是某個區域的首富,如百度4(2015-10-25)。

站長們,加油!

2. 用Node開發Alexa服務

2.1 Alexa開放API

Alexa網站排名被業界普通的認可,排名數據會經常地被引用,每次都在網站上查詢就會顯得不方便。Amazon提供的Alexa的API,讓開發者可以構建自己的Alexa查詢的應用。

Alexa有2個主要的數據API服務。

? Alexa Web Information Service,查詢單個網站的排名信息

? Alexa Top Sites,查詢網站的綜合排名

通常情況,只需要調用UrlInfo數據接口,就可以獲得網站的流量數據了。當然,這個接口的定義,并不像我之前想象的那么好用,而且開放出來的數據有限。

UrlInfo接口的API,如下圖所示。

網站優化 網站排名 Aleax查詢 百度權重 提升網站流量 

官方提供了多語言的SDK工具包,我覺得還是Node.js最方便。我構建的一個Alexa數據查詢服務,http://fens.me/alexa

網站優化 網站排名 Aleax查詢 百度權重 提升網站流量 

2.2 創建AWS的API密鑰

我們在使用AWS的API之前,需要先創建密鑰,類似于OAuth2的訪問的機制。

1. 注冊AWS賬號,請大家自己完成。注冊

2. 進入AWS賬號管理控制臺,控制臺

3. 從控制臺選擇“安全證書”

網站優化 網站排名 Aleax查詢 百度權重 提升網站流量 

4. 創建訪問密鑰(訪問密鑰 ID 和私有訪問密鑰)

我們一會寫程序的時候,需要輸入創建的訪問密鑰 ID 和私有訪問密鑰。

2.3 用Node開發Alexa服務

接下來,介紹用Node構建一個Alexa的項目。

我的系統環境

? Win10 64bit

? Node v0.12.3

? NPM 2.9.1

創建項目

~ D:\workspace\nodejs>mkdir nodejs-alexa && cd nodejs-alexa

新建Node項目配置文件:package.json

  1. ~ vi package.json  
  2.  
  3. {  
  4.   "name": "alexa-demo",  
  5.   "version": "0.0.1",  
  6.   "description": "alexa web demo",  
  7.   "license": "MIT",  
  8.   "dependencies": {  
  9.     "awis": "0.0.8"  
  10.   }  

安裝awis包

  • ~ D:\workspace\nodejs\nodejs-alexa>npm install  
  • npm WARN package.json alexa-demo@0.0.1 No repository field.  
  • npm WARN package.json alexa-demo@0.0.1 No README data  
  • alexarank@0.1.1 node_modules\alexarank  
  • ├── xml2js@0.4.13 (sax@1.1.4, xmlbuilder@3.1.0)  
  • └── request@2.30.0 (forever-agent@0.5.2, aws-sign2@0.5.0, qs@0.6.6, tunnel-agent@0.3.0, oauth-sign@0.3.0, json-stringify-safe@5.0.1, mime@1.2.11, node-uuid@1.4.3, tough-cookie@0.9.15, form-data@0.1.4, hawk@1.0.0, http-signature@0.10.1)  
  •  
  • awis@0.0.8 node_modules\awis  
  • ├── xml2js@0.4.13 (sax@1.1.4, xmlbuilder@3.1.0)  
  • ├── lodash@3.10.1  
  • └── request@2.65.0 (aws-sign2@0.6.0, forever-agent@0.6.1, caseless@0.11.0, stringstream@0.0.4, oauth-sign@0.8.0, tunnel-agent@0.4.1, isstream@0.1.2, json-stringify-safe@5.0.1, extend@3.0.0, node-uuid@1.4.3, qs@5.2.0, tough-cookie@2.2.0, combined-stream@1.0.5, mime-types@2.1.7, form-data@1.0.0-rc3, http-signature@0.11.0, hawk@3.1.0, bl@1.0.0, har-validator@2.0.2)
 

新建文件alexa.js,調用AWS Alexa網站排名API。

  1. ~ vi alexa.js  
  2.  
  3. // 定義AWS密鑰  
  4. var key = 'xxxxxxxxxxxxxxx';  
  5. var sercet = 'xxxxxxxxxxxxxxx';  
  6.  
  7. // 創建awis實例化對象  
  8. var awis = require('awis');  
  9. var client = awis({  
  10.   key: key,  
  11.   secret: sercet  
  12. });  
  13.  
  14. // 調用UrlInfo接口  
  15. console.log("=============UrlInfo=================");  
  16. client({  
  17.   'Action''UrlInfo',                         //UrlInfo接口  
  18.   'Url''fens.me',                            //查詢的網站  
  19.   'ResponseGroup''TrafficData,ContentData'   //需要的數據組  
  20. }, function (err, data) {  
  21.   if(err) console.log(err);  
  22.   console.log(data);    
  23. });  

運行程序node alexa.js

  1. ~ D:\workspace\nodejs\nodejs-alexa>node alexa.js  
  2. =============UrlInfo=================  
  3. { contentData:  
  4.    { dataUrl: 'fens.me',  
  5.      siteData:  
  6.       { title: '粉絲日志',  
  7.         description: '跨界的IT博客|Hadoop家族, R, RHadoop, Nodejs, AngularJS, NoSQL, IT金融' },  
  8.      speed: { medianLoadTime: '982', percentile: '70' },  
  9.      adultContent: '',  
  10.      language: '',  
  11.      linksInCount: '198',  
  12.      keywords: '',  
  13.      ownedDomains: '' },  
  14.   trafficData:  
  15.    { dataUrl: 'fens.me',  
  16.      rank: '122616',  
  17.      usageStatistics: { usageStatistic: [Object] },  
  18.      contributingSubdomains: { contributingSubdomain: [Object] } } } 

簡簡單單地幾行代碼,都獲得了Alexa的排名信息。后臺打印時Object沒有轉到成對象,我做了一個服務,可以通過HTTP輸出查看完整的返回。http://api.fens.me/alexa/fens.me

我們查檢一下awis包的源代碼可以發現,其實AWS Alexa服務返回是XML,awis的自動幫我們做了JSON的轉型處理,如果想查看原始的返回值,可以修改awis包中index.js文件parse()函數。

  1. function parse(xml, req, cb) {  
  2.   console.log(xml); //打印  
  3.  
  4.   ....  
  5. }  

運行程序

  1. D:\workspace\nodejs\nodejs-alexa>node alexa.js 
  2. =============UrlInfo=================  
  3. <?xml version="1.0"?> 
  4. <aws:UrlInfoResponse xmlns:aws="http://alexa.amazonaws.com/doc/2005-10-05/"><aws:Response xmlns:aws="http://awis.amazonaws.com/doc/2005-07-11"><aws:OperationRequest><aws:RequestId>1e7d8406-4b62-3460-27fb-325fc3dc3e85</aws:RequestId></aws:OperationRequest><aws:UrlInfoResult><aws:Alexa> 
  5.  
  6.   <aws:ContentData> 
  7.     <aws:DataUrl type="canonical">fens.me</aws:DataUrl> 
  8.     <aws:SiteData> 
  9.       <aws:Title>粉絲日志</aws:Title> 
  10.       <aws:Description>跨界的IT博客|Hadoop家族, R, RHadoop, Nodejs, AngularJS, NoSQL, IT金融</aws:Description> 
  11.     </aws:SiteData> 
  12.     <aws:Speed> 
  13.       <aws:MedianLoadTime>982</aws:MedianLoadTime> 
  14.       <aws:Percentile>70</aws:Percentile> 
  15.     </aws:Speed> 
  16.     <aws:AdultContent/> 
  17.     <aws:Language/> 
  18.     <aws:LinksInCount>198</aws:LinksInCount> 
  19.     <aws:Keywords/> 
  20.     <aws:OwnedDomains/> 
  21.   </aws:ContentData> 
  22.   <aws:TrafficData> 
  23.     <aws:DataUrl type="canonical">fens.me</aws:DataUrl> 
  24.     <aws:Rank>122616</aws:Rank> 
  25.     <aws:UsageStatistics> 
  26.       <aws:UsageStatistic> 
  27.         <aws:TimeRange> 
  28.           <aws:Months>3</aws:Months> 
  29.         </aws:TimeRange> 
  30.         <aws:Rank> 
  31.           <aws:Value>122616</aws:Value> 
  32.           <aws:Delta>+28849</aws:Delta> 
  33.         </aws:Rank> 
  34.         <aws:Reach> 
  35.           <aws:Rank> 
  36.             <aws:Value>110056</aws:Value> 
  37.             <aws:Delta>+25785</aws:Delta> 
  38.           </aws:Rank> 
  39.           <aws:PerMillion> 
  40.             <aws:Value>12.5</aws:Value> 
  41.             <aws:Delta>-24.68%</aws:Delta> 
  42.           </aws:PerMillion> 
  43.         </aws:Reach> 
  44.         <aws:PageViews> 
  45.           <aws:PerMillion> 
  46.             <aws:Value>0.27</aws:Value> 
  47.             <aws:Delta>-24.84%</aws:Delta> 
  48.           </aws:PerMillion> 
  49.           <aws:Rank> 
  50.             <aws:Value>194189</aws:Value> 
  51.             <aws:Delta>43945</aws:Delta> 
  52.           </aws:Rank> 
  53.           <aws:PerUser> 
  54.             <aws:Value>1.9</aws:Value> 
  55.             <aws:Delta>0%</aws:Delta> 
  56.           </aws:PerUser> 
  57.         </aws:PageViews> 
  58.       </aws:UsageStatistic> 
  59.       <aws:UsageStatistic> 
  60.         <aws:TimeRange> 
  61.           <aws:Months>1</aws:Months> 
  62.         </aws:TimeRange> 
  63.         <aws:Rank> 
  64.           <aws:Value>102621</aws:Value> 
  65.           <aws:Delta>-30257</aws:Delta> 
  66.         </aws:Rank> 
  67.         <aws:Reach> 
  68.           <aws:Rank> 
  69.             <aws:Value>95663</aws:Value> 
  70.             <aws:Delta>-20326</aws:Delta> 
  71.           </aws:Rank> 
  72.           <aws:PerMillion> 
  73.             <aws:Value>15</aws:Value> 
  74.             <aws:Delta>+20%</aws:Delta> 
  75.           </aws:PerMillion> 
  76.         </aws:Reach> 
  77.         <aws:PageViews> 
  78.           <aws:PerMillion> 
  79.             <aws:Value>0.37</aws:Value> 
  80.             <aws:Delta>+60%</aws:Delta> 
  81.           </aws:PerMillion> 
  82.           <aws:Rank> 
  83.             <aws:Value>153976</aws:Value> 
  84.             <aws:Delta>-69981</aws:Delta> 
  85.           </aws:Rank> 
  86.           <aws:PerUser> 
  87.             <aws:Value>2.2</aws:Value> 
  88.             <aws:Delta>+30%</aws:Delta> 
  89.           </aws:PerUser> 
  90.         </aws:PageViews> 
  91.       </aws:UsageStatistic> 
  92.       <aws:UsageStatistic> 
  93.         <aws:TimeRange> 
  94.           <aws:Days>7</aws:Days> 
  95.         </aws:TimeRange> 
  96.         <aws:Rank> 
  97.           <aws:Value>114709</aws:Value> 
  98.           <aws:Delta>+32390</aws:Delta> 
  99.         </aws:Rank> 
  100.         <aws:Reach> 
  101.           <aws:Rank> 
  102.             <aws:Value>103552</aws:Value> 
  103.             <aws:Delta>+27312</aws:Delta> 
  104.           </aws:Rank> 
  105.           <aws:PerMillion> 
  106.             <aws:Value>14</aws:Value> 
  107.             <aws:Delta>-28.59%</aws:Delta> 
  108.           </aws:PerMillion> 
  109.         </aws:Reach> 
  110.         <aws:PageViews> 
  111.           <aws:PerMillion> 
  112.             <aws:Value>0.3</aws:Value> 
  113.             <aws:Delta>-37.28%</aws:Delta> 
  114.           </aws:PerMillion> 
  115.           <aws:Rank> 
  116.             <aws:Value>188124</aws:Value> 
  117.             <aws:Delta>58655</aws:Delta> 
  118.           </aws:Rank> 
  119.           <aws:PerUser> 
  120.             <aws:Value>2.0</aws:Value> 
  121.             <aws:Delta>-12.11%</aws:Delta> 
  122.           </aws:PerUser> 
  123.         </aws:PageViews> 
  124.       </aws:UsageStatistic> 
  125.       <aws:UsageStatistic> 
  126.         <aws:TimeRange> 
  127.           <aws:Days>1</aws:Days> 
  128.         </aws:TimeRange> 
  129.         <aws:Rank> 
  130.           <aws:Value>74860</aws:Value> 
  131.           <aws:Delta>-93163</aws:Delta> 
  132.         </aws:Rank> 
  133.         <aws:Reach> 
  134.           <aws:Rank> 
  135.             <aws:Value>70563</aws:Value> 
  136.             <aws:Delta>-54001</aws:Delta> 
  137.           </aws:Rank> 
  138.           <aws:PerMillion> 
  139.             <aws:Value>20</aws:Value> 
  140.             <aws:Delta>+60%</aws:Delta> 
  141.           </aws:PerMillion> 
  142.         </aws:Reach> 
  143.         <aws:PageViews> 
  144.           <aws:PerMillion> 
  145.             <aws:Value>0.6</aws:Value> 
  146.             <aws:Delta>+300%</aws:Delta> 
  147.           </aws:PerMillion> 
  148.           <aws:Rank> 
  149.             <aws:Value>111541</aws:Value> 
  150.             <aws:Delta>-210757</aws:Delta> 
  151.           </aws:Rank> 
  152.           <aws:PerUser> 
  153.             <aws:Value>2</aws:Value> 
  154.             <aws:Delta>+100%</aws:Delta> 
  155.           </aws:PerUser> 
  156.         </aws:PageViews> 
  157.       </aws:UsageStatistic> 
  158.     </aws:UsageStatistics> 
  159.     <aws:ContributingSubdomains> 
  160.       <aws:ContributingSubdomain> 
  161.         <aws:DataUrl>blog.fens.me</aws:DataUrl> 
  162.         <aws:TimeRange> 
  163.           <aws:Months>1</aws:Months> 
  164.         </aws:TimeRange> 
  165.         <aws:Reach> 
  166.           <aws:Percentage>99.19%</aws:Percentage> 
  167.         </aws:Reach> 
  168.         <aws:PageViews> 
  169.           <aws:Percentage>99.64%</aws:Percentage> 
  170.           <aws:PerUser>2.2</aws:PerUser> 
  171.         </aws:PageViews> 
  172.       </aws:ContributingSubdomain> 
  173.       <aws:ContributingSubdomain> 
  174.         <aws:DataUrl>OTHER</aws:DataUrl> 
  175.         <aws:TimeRange> 
  176.           <aws:Months>1</aws:Months> 
  177.         </aws:TimeRange> 
  178.         <aws:Reach> 
  179.           <aws:Percentage>0</aws:Percentage> 
  180.         </aws:Reach> 
  181.         <aws:PageViews> 
  182.           <aws:Percentage>0.36%</aws:Percentage> 
  183.           <aws:PerUser>0</aws:PerUser> 
  184.         </aws:PageViews> 
  185.       </aws:ContributingSubdomain> 
  186.     </aws:ContributingSubdomains> 
  187.   </aws:TrafficData> 
  188. </aws:Alexa></aws:UrlInfoResult><aws:ResponseStatus xmlns:aws="http://alexa.amazonaws.com/doc/2005-10-05/"><aws:StatusCode>Success</aws:StatusCode></aws:ResponseStatus></aws:Response></aws:UrlInfoResponse> 

除了UrlInfo接口還有幾個接口可以使用。

TrafficHistory接口

  1. console.log("=============TrafficHistory=================");  
  2. client({  
  3.   'Action': 'TrafficHistory',  
  4.   'Url': 'fens.me',  
  5.   'ResponseGroup': 'History'  
  6. }, function (err, res) {  
  7.     if(err) console.log(err);  
  8.     console.log(res.trafficHistory);  
  9.     console.log(res.trafficHistory.range);  
  10.     console.log(res.trafficHistory.site);  
  11.     console.log(res.trafficHistory.start);  
  12.     console.log(res.trafficHistory.historicalData);  
  13.     console.log(res.trafficHistory.historicalData.data);  
  14.     console.log(res.trafficHistory.historicalData.data.length);  
  15.     res.trafficHistory.historicalData.data.forEach(function (item) {  
  16.       console.log(item.date);  
  17.       console.log(item.pageViews);  
  18.       console.log(item.rank);  
  19.       console.log(item.reach);  
  20.     });  
  21. }); 

運行程序

  1. ~ D:\workspace\nodejs\nodejs-alexa>node alexa.js 
  2. =============TrafficHistory=================  
  3. { range: '31',  
  4.   site: 'fens.me',  
  5.   start: '2015-09-23',  
  6.   historicalData:  
  7.    { data:  
  8.       [ [Object],  
  9.         [Object],  
  10.         [Object],  
  11.         [Object],  
  12.         [Object],  
  13.         [Object],  
  14.         [Object],  
  15.         [Object],  
  16.         [Object],  
  17.         [Object],  
  18.         [Object],  
  19.         [Object],  
  20.         [Object],  
  21.         [Object],  
  22.         [Object],  
  23.         [Object],  
  24.         [Object],  
  25.         [Object],  
  26.         [Object],  
  27.         [Object],  
  28.         [Object],  
  29.         [Object],  
  30.         [Object],  
  31.         [Object],  
  32.         [Object],  
  33.         [Object],  
  34.         [Object],  
  35.         [Object],  
  36.         [Object],  
  37.         [Object],  
  38.         [Object] ] } }  
  39.  
  40. // 省略輸出 

SitesLinkingIn接口

  1. console.log("=============SitesLinkingIn=================");  
  2. client({  
  3.   'Action': 'SitesLinkingIn',  
  4.   'Url': 'fens.me',  
  5.   'ResponseGroup': 'SitesLinkingIn'  
  6. }, function (err, data) {  
  7.   if(err) console.log(err);  
  8.   console.log(data);  
  9. }); 

運行程序

  1. ~ D:\workspace\nodejs\nodejs-alexa>node alexa.js 
  2. =============SitesLinkingIn=================  
  3. { sitesLinkingIn:  
  4.    { site:  
  5.       [ [Object],  
  6.         [Object],  
  7.         [Object],  
  8.         [Object],  
  9.         [Object],  
  10.         [Object],  
  11.         [Object],  
  12.         [Object],  
  13.         [Object],  
  14.         [Object] ] } } 

CategoryBrowse接口

  1. console.log("=============CategoryBrowse=================");  
  2. client({  
  3.   'Action': 'CategoryBrowse',  
  4.   'Url': 'fens.me',  
  5.   'Path': 'Top/china',  
  6.   'ResponseGroup': 'LanguageCategories'  
  7. }, function (err, data) {  
  8.   if(err) console.log(err);  
  9.   console.log(data);  
  10. });  

運行程序

  1. ~ D:\workspace\nodejs\nodejs-alexa>node alexa.js 
  2. =============CategoryBrowse=================  
  3. { categoryBrowse: { languageCategories: '' } }  

最后,我們只需要把這個程序用web封裝一下,就可以提供對用戶的服務了,參考我的網站http://fens.me/alexa 。

本文對應的代碼請通過github進行下載,下載地址為:https://github.com/bsspirit/nodejs-alexa 。

Alexa網站排名以第三方的視角給全球的每個網站進行了排名,甚至是定價。做為一個優秀的網長,我們要使用好Alexa工具,了解自己的網站和競爭對手的網站,才能網站脫穎而出,成為成功的站長!


上一篇:沒有上一篇拉
收縮
技術部 業務部 售后服務 0371-63360829
极速快乐十分计划软件手机版下载 网赚团队投资是真的的吗 江西多乐彩走势图基本 ds视讯能玩吗 天津快乐10分玩法 新疆时时彩开奖结果lm0 内蒙古快三晚上预测 海南环岛赛玩法 天津11选5走势图前三基本走势图 金道娱乐平台 12生肖表码报2021 乐彩快乐8 AB真人手机登录网站 湖北快3湖北快3走势图 2345彩票网址 北京pk10群彩计划 澳洲幸运10开奖结果查询视频