分享好友 最新动态首页 最新动态分类 切换频道
获取网站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("



最新文章
移动支付网早报12.16:特约商户辅助管理指南发布,建行调整信用卡积分规则
【移动支付网早报】聚焦移动支付、金融科技行业热点,让每日支付科技新闻早知道。【点击标题】可直接阅读原文。《特约商户数字化辅助管理工作指南》发布为引导会员单位稳妥利用数字化手段落实现行收单业务管理要求、开展特约商户真实性管理
小米手机怎么刷root
小米手机怎么刷root呢?root权限很多使用安卓手机的小伙伴可能都有所耳闻,但是大家对于刷root的具体方法不了解,毕竟这还是需要一定步骤的,刷root之后你就能随心的折腾手机了,小米手机刷root权限的过程相对复杂,需要用户具备一定的操作
独立站——跨境电商的“破局者”
本文转自《焦点视界》总第80期,作者胡成钢。关于作者胡成钢,现任南京焦点领动云计算技术有限公司总经理,2003年起进入互联网行业,历任焦点科技销售工程师、销售主管、事业部总经理等职。独立站的起源与发展背景中国加入WTO十年后的2012
网贷怎么协商还本金方法
小编导语随着互联网金融的发展,网贷成为了许多人解决资金问的方式。随之而来的也有不少的风险和问,尤其是在还款压力大的情况下,很多借款人开始考虑如何与网贷平台协商还本金。本站将详细探讨网贷协商还本金的可行性及具体 ,希望能为广
立体监测更清晰 精准预报更有力 场景服务更智慧踔厉奋发新征程
近日,城市气象科技联盟组织召开极端天气下城市防灾减灾气象科技成果发布会,发布了16项代表性成果,涵盖人工智能技术应用、雷达组网协同观测、短时强降水预报技术、交通气象保障技术等多个领域。当前,全球气候形势变得愈加复杂,极端气候
莱州网站关键词排名优化,策略与实践,莱州网页
莱州网站关键词排名优化策略与实践,旨在提升莱州网页在搜索引擎中的排名。通过深入研究关键词、优化网站结构、提高内容质量、建立外部链接等策略,可以显著提升网站的可见度和流量。实践过程中需要注意避免过度优化和不良手段,确保优化效
中谦营销:广州专业网络营销公司,招商外包公司、招商策划公司、网络推广公司,全网营销公司
广州市中谦营销咨询有限公司简称“中谦营销”,中谦营销是一家致力于中小企业的互联网营销、招商外包服务商,提供品牌推广、网络营销、网络推广、招商策划、招商外包、新媒体运营等多种服务为一体的互联网推广服务公司。我们拥有资深的项目
打造高效营销,营销型搭建全攻略揭秘
全面解析营销型搭建攻略,涵盖选择、、空间选择、优化配置、内容布局等关键步骤,助你轻松搭建高效营销,提升品牌影响力。探究营销型的重要性营销型的操作步骤营销型的要点关注在互联网迅猛发展的当下,众多企业逐渐认识到营销型的价值所在
使用备份插件从备份中恢复WordPress网站的方法,微软云服务器
WordPress作为目前最受欢迎的内容管理系统之一,拥有丰富的主题模板和插件库,允许用户轻松扩展网站功能。例如,许多WordPress备份插件允许您直接从WordPress仪表盘创建部分或完整的网站备份。下面一起来看下如何使用备
海外TMT行业2025年度AI需求持续高景气,算力终端应用全产业链投资机会梳理.pptxVIP
算力:AI算力需求持续高景气,单卡到组网集群各产业链环节均受益终端:AI+终端百花齐放,边缘SoC+生态系统+硬件迭代构筑端侧智能体应用:AI应用百舸争流,LLM仍是核心竞争力风险提示请务必参阅正文之后的重要声明1AI算力需求持续高景气,单
相关文章
推荐文章
发表评论
0评