分享好友 最新动态首页 最新动态分类 切换频道
获取网站Alexa排名数值的方法
2024-12-27 20:28

获取网站Alexa排名数值的方法

  网络上有很多文章介绍如何自动抓取网站的Alexa排名,但是仔细一看发现抓取到的数据(Alexa排名

数值)被Alexa加入了很多干扰元素,如果只是要将数据(Alexa排名数值)显示在页面倒没有什么问题

,若是要对数据进行处理比如将两个网站的排名数值进行比较或者将网站排名数值存入数据库供日后调

,则要对抓取到的数据进行适当的处理。

  以下是本人结合其他网友提供的代码,对抓取到的数据进行处理后获得干干净净的数值的方法。核心

函数代码如下: <%


'// alexa 世界排名的查询页面为



'// 以下函数抓取到含有干扰元素的数据并通过函数对数据进行处理,获得干干净净的Alexa排名数值

Function alexa(str)

url="
strs=str

If IsObjInstalled("AspHTTP.Conn")=true Then
str= getaspHTTPPage(url)
else
str= getHTTPPage(url)
End if


if str="" then
Call Error()
else
   str_=str
   str1=""
    set reg=new Regexp
reg.Multiline=True
reg.Global=True
reg.IgnoreCase=true
str_top="<!--Did you know"
str_bottom="</span>"
reg.Pattern=""&str_top&"((.| )*?)"&str_bottom&""
Set matches = reg.execute(str_)
str1=""
For Each match1 in matches
str1=str1&match1.Value&"***"
Next
Set matches = Nothing
Set reg = Nothing

IF str1 <> "" Then
str1 = Replace(str1,"<!--Did you know? Alexa offers this data programmatically.  

Visit 

Service.-->","")
str1 = Replace(str1,"</span>","")
Str_11=split(str1,"<div class=""borderBottom""></div>")
str1 = Str_11(0)
Str_11 = split(str1,"***")
str1_Pan = Str_11(0)
End If

set reg=new Regexp
reg.Multiline=True
reg.Global=True
reg.IgnoreCase=true
str_top="<td class=""traffic"">"
str_bottom="</td>"
reg.Pattern=""&str_top&"((.| )*?)"&str_bottom&""
Set matches = reg.execute(str_)
str1=""
For Each match1 in matches
str1=str1&match1.Value&"***"
Next
Set matches = Nothing
Set reg = Nothing

IF str1 <> "" Then
Str_11=split(str1,"***")

End If
End if

'************************************
'************************************
alexa=getcorrectvalue(str1_Pan)
'************************************
'************************************

End Function





'************************************
'此功能函数去除干扰元素
'************************************
function getcorrectvalue(source)
source="|"+source+"|"

while InStr(source,"<")>0
thestart = InStr(source, "<")
theend   = InStr(source, ">")
source = mid(source,1,thestart-1)+right(source,(len(source)-theend))
wend

source=replace(source,"|","")
source=replace(source,",","")
getcorrectvalue=source
end function


'************************************
'************************************





'// <summary>
'// 采用 Microsoft.XMLHTTP 组件采集数据
'// </summary>
Function getHTTPPage(url) 
on error resume next 
dim http 
 set http=Server.createobject("Microsoft.XMLHTTP") 
Http.open "GET",url,false 
Http.send() 
if Http.readystate<>4 then
exit function 
end if 
getHTTPPage=bytes2BSTR(Http.responseBody) 
set http=nothing
if err.number<>0 then err.Clear  
End function

'// <summary>
'// 采用 ADODB.Stream 处理采集到的数据,把二进制的文件转成文本字符
'// </summary>
Function Bytes2bStr(vin)
  Dim BytesStream,StringReturn
  Set BytesStream = Server.CreateObject("ADODB.Stream")
  BytesStream.Type = 2
  BytesStream.Open
  BytesStream.WriteText vin
  BytesStream.Position = 0
  BytesStream.Charset "GB2312"
  BytesStream.Position = 2
  StringReturn =BytesStream.ReadText
  BytesStream.close
  Set BytesStream = Nothing
  Bytes2bStr = StringReturn
End Function


'// <summary>
'// 采用 AspHTTP.Conn 组件采集数据
'// </summary>
Function getaspHTTPPage(url)
    if url="" then
exit function 
    end if 
    Set HttpObj = Server.CreateObject("AspHTTP.Conn")

'设置代理服务器,通过代理上网的用户需要设置此选项
If ProxyIP=1 Then
HttpObj.Proxy="192.168.5.254:808"
end if

HTTPObj.TimeOut = 45
HttpObj.Url = url
HttpObj.RequestMethod "GET"
getaspHTTPPage = HttpObj.GetURL
    set HttpObj=nothing
End function




'//<summary>
'//检查组件,采用xmlhttp抓取网页还是AspHTTP
'//</summary>

Function IsObjInstalled(strClassString)
 On Error Resume Next
 IsObjInstalled = False
 Err = 0
 Dim xTestObj
 Set xTestObj = Server.CreateObject(strClassString)

 If 0 = Err Then
If AspHttpOpen=1 Then
IsObjInstalled = True
'Response.write "当前组件 ASPHTTP"
Else
IsObjInstalled = False
'Response.write "当前组件 XMLHTTP"
End If
 Else
IsObjInstalled = False
'Response.write "当前组件 XMLHTTP"
 End If

 Set xTestObj = Nothing
 Err = 0
 
End Function

Sub Error()
response.write "<BR>  抓取不到数据-可能是因为网络原因不能访问站点<BR><a 

href=javascript:location.reload();>重试</a>"
response.end
End Sub


%>


调用方法


<%
response.write alexa("
%>

<%=alexa("



最新文章
【V8腾讯手机管家下载】VINUS V8腾讯手机管家16.1.19免费下载
腾讯手机管家专注手机骚扰拦截,动态守护手机安全,深度清理微信、QQ缓存,让手机体积减半,拒绝卡慢。---认真服务---【骚扰拦截】智能拦截骚扰电话,过滤诈骗垃圾短信【清理加速】清理加速能力升级,释放空间告别卡慢【微信清理】个性清理
华为手机怎么设置双击亮屏
在智能手机日益普及的今天,各种便捷的操作方式也层出不穷。其中,双击亮屏功能因其便捷性而备受用户青睐。华为手机作为市场上的热门品牌,同样提供了这一功能。下面,我们就来详细讲解一下如何在华为手机上设置双击亮屏。首先,你需要打开
我为同学做实事 | 研途加油站:科研软件分享(第三期)
我为同学做实事研途加油站:科研软件分享(第三期)SPSS(Statistical Package for the Social Sciences)是一款专为社会科学领域设计的数据分析软件,其功能强大且易于使用,特别适合于教育和市场调研等领域,并且其直观的操作界面非常适
庆阳谷歌SEO营销赋能,助企业跨境拓展全球市场
庆阳谷歌SEO营销公司专注于助力企业国际化,通过优化谷歌搜索排名,帮助企业快速抢占全球市场先机,提升品牌国际影响力。随着互联网技术的飞速发展,越来越多的企业开始意识到的重要性,在众多营销手段中,谷歌(搜索引擎优化)以其精准的
移动网站建设的前景/珠海网站建设优化
作者:CodeBear的园子 www.cnblogs.com/CodeBear/p/10911177.html本文是站在小白的角度去讨论布隆过滤器,如果你是科班出身,或者比较聪明,又或者真正想完全搞懂布隆过滤器的可以移步。不知道从什么时候开始ÿ
转口贸易的办理流程 进出口报关代理
转口贸易 保税区免税中转换柜 俄罗斯转口 中转贸易 深圳转口贸易 中国转口交易****为了节约您的宝贵时间,请直接电话联系我,10年保税区转厂报关经验****我公司是深圳坪山综合保税区内的物流公司,我公司有自己的保税仓库和报关行,我公司
前轮外倾的作用是什么
新手长途驾驶要注意以下这些技巧和事项。 实习期不能独自上高速没出实习期可走国道或找三年以上驾龄的司机陪同。 出发前要认真检查车况重点查看轮胎和刹车片等关键部位。 注意控制车速避免超速下高速进匝道时尤其要减速。
穿山甲短剧与广告联盟变现小程序平台系统搭建开发
在开发短剧对接广告联盟变现系统之前,首先需要对市场进行深入分析。了解目标观众的偏好、观看习惯以及消费能力是至关重要的。此外,分析竞争对手的广告策略和变现手段也能帮助开发者找到差异化的定位。这一阶段的目的是确保短剧内容与广告
泰豪科技涨0.37%,成交额5061.16万元,近3日主力净流入-516.99万
12月16日,涨0.37%,成交额5061.16万元,换手率1.10%,总市值46.23亿元。根据AI大模型测算泰豪科技后市走势。短期趋势看,该股当前无连续增减仓现象,主力趋势不明显。主力没有控盘。中期趋势方面,下方累积一定获利筹码。近期该股有吸筹现
微云超级链:类似WU界SaaS模式下企业数字化转型的一站式解决方案!
微云超级链:类似WU界SaaS模式下企业数字化转型的一站式解决方案!系统搭建+平台运营,微三云麦超介绍前文介绍:微 三 云 为 什 么 要 研 发 “ 云 平 台 ” 在 面 对 当 下 成 千 上 万 商 家 的 运 营 需 求 时 ,微 三 云 过 去 堆 叠
相关文章
推荐文章
发表评论
0评