ASP获取ALEXA排名的算法

ASP获取ALEXA排名的算法,可以破除alexa页面中的干扰码。
        网上现流行的获取ALEXA排名的asp源码很多都已经无效,大多数代码采取的是读取http://www.alexa.com/data/details/traffic_details/www.newbooks.com.cn页面,从中获取ALEXA排名。
但是现在Alexa已经在显示排名的地方加入了干扰码。我们可以看下这个页面显示排名数据的代码。如:www.newbooks.com.cn 的排名为:221,925。我们通过查看源代码看到,显示排名的地方显示的代码为:<span class="cfba">22</span><span class="c477">33</span>1,9<span class="cbea">36</span><span class="c120">25</span>
如果采用以前的获取排名的代码的方式,得到的将是这样一串字符串。而且alexa排名页面中的span的class和其中的数字是随机生成的。这样的话,我们通过以前的方式来获取排名就比较困难了。
        我仔细分析了一下alexa排名页面的代码,很容易就发现了alexa排名的干扰码的生成规律。
        譬如www.newbooks.com.cn 的排名为:221,925,在alexa代码中,<span class="c477">33</span>、<span class="cbea">36</span>这些代码属于干扰码,这些干扰码有什么规律呢?我通过分析alexa的CSS样式,发现class=c477及cbea在样式表中定义的display属性为none。这样,这几个数字在页面上并不会显示,但是代码中却有这些代码,从而达到干扰的效果。其中alexa定义css属性的样式文件为:http://client.alexa.com/common/css/scramble.css。相信到这里大家都应该能找到破除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://www.alexa.com/data/details/traffic_details/www.newbooks.com.cn页面内容,alexa在显示排名的地方,会有如下代码<!--Did you know? Alexa offers this data programmatically.  Visit http://aws.amazon.com/awis for more information about the Alexa Web Information Service.-->,所以我们可以截取我们获得页面内容中的字符串,取<!--Did you know? Alexa offers this data programmatically.  Visit http://aws.amazon.com/awis for more information about the Alexa Web Information Service.-->和<!-- google_ad_section_end(name=default) -->之中的内容。这样,我们就获得了:<span class="cfba">22</span><span class="c477">33</span>1,9<span class="cbea">36</span><span class="c120">25</span></span>这样的字符串,保存至变量rankcontent。
进入http://blog.linkhelper.cn/post/aspalexarank.html查看完整内容和源代码下载。

阅读更多
个人分类: asp
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭