비교적 간단한 Alexa 도둑 프로그램입니다. 이 기능을 좋아하는 친구들은 이 프로그램을 곧 작성할 수 있을 것이라고 믿습니다.<%
'독창성을 뒷받침하기 위해 이 댓글을 꼭 지켜주세요. 감사합니다!
저자 : 페이 카오샹
'기본 도메인 이름을 가져옵니다
함수 getDomainUrl(url)
tempurl=교체(url,http://,)
instr(tempurl,/)>0이면
tempurl=왼쪽(tempurl,instr(tempurl,/)-1)
endIf
getDomainurl=임시 URL
기능 종료
함수 GetHttpPage(HttpUrl)
IsNull(HttpUrl)=True 또는 Len(HttpUrl)<18 또는 HttpUrl=$False$이면
GetHttpPage=$False$
종료 기능
종료 조건
희미한 HTTP
Http=server.createobject(MSXML2.XMLHTTP)로 설정합니다.
Http.open GET,HttpUrl,False
Http.보내기()
Http.Readystate<>4이면
Http=아무것도 설정하지 않음
GetHttpPage=$False$
종료 기능
다음과 같은 경우 종료
GetHTTPage=Http.responseText
Http=아무것도 설정하지 않음
Err.number<>0이면
Err.Clear
종료 조건
기능 종료
'================================================ = =
'함수 이름: ScriptHtml
'기능: html 태그 필터링
'매개변수: ConStr ------ 필터링할 문자열
'TagName ------필터링할 태그
' FType 1은 왼쪽 레이블 필터링을 의미하고, 2는 왼쪽 및 오른쪽 레이블 필터링을 의미하며, 중간 값 3은 왼쪽 레이블과 오른쪽 레이블 필터링을 의미하며 내용을 유지합니다.
'================================================ = =
함수 ScriptHtml(Byval ConStr,TagName,FType,includestr)
딤레
Re=new RegExp 설정
Re.IgnoreCase=true
Re.Global=참
케이스 F유형 선택
사례 1
Re.Pattern=< & 태그 이름 & ([^>])*(&includestr&){1,}([^>])*>
ConStr=Re.Replace(ConStr,)
사례 2
Re.Pattern=< & 태그 이름 & ([^>])*(&includestr&){1,}([^>])*>.*?</ & 태그 이름 & ([^>])*>
'response.write constr&<br>
ConStr=Re.Replace(ConStr,)
'response.write server.htmlencode(constr)&<br>
사례 3
Re.Pattern=< & 태그 이름 & ([^>])*(&includestr&){1,}([^>])*>
ConStr=Re.Replace(ConStr,)
Re.Pattern=</ & 태그 이름 & ([^>])*>
ConStr=Re.Replace(ConStr,)
선택 종료
ScriptHtml=ConStr
다시=없음으로 설정
기능 종료
'================================================ = =
'함수 이름: GetBody
'기능: 문자열 가로채기
'매개변수: ConStr ------가로채기할 문자열
'매개변수: StartStr ------시작 문자열
'매개변수: OverStr ------끝 문자열
'매개변수: IncluL ------StartStr 포함 여부
'Parameter:IncluR ------OverStr 포함 여부
'================================================ = =
함수 GetBody(ConStr,StartStr,OverStr,IncluL,IncluR)
ConStr=$False$ 또는 ConStr= 또는 IsNull(ConStr)=True Or StartStr= 또는 IsNull(StartStr)=True Or OverStr= 또는 IsNull(OverStr)=True 그러면
GetBody=$False$
종료 기능
종료 조건
DimConStrTemp
희미한 시작, 이상
ConStrTemp=Lcase(ConStr)
StartStr=Lcase(StartStr)
OverStr=Lcase(OverStr)
시작 = InStrB(1, ConStrTemp, StartStr, vbBinaryCompare)
'response.write 시작&<br>&포함&<br>
'응답.끝
시작<=0이면
GetBody=$False$
종료 기능
또 다른
IncluL=False인 경우
시작=시작+LenB(StartStr)
종료 조건
종료 조건
Over=InStrB(시작,ConStrTemp,OverStr,vbBinaryCompare)
'response.덮어쓰기
'응답.끝
'response.write 시작& &오버& &오버-시작
'응답.끝
Over<=0 또는 Over<=시작하면
GetBody=$False$
종료 기능
또 다른
InclR=True이면
오버=오버+LenB(오버Str)
종료 조건
종료 조건
GetBody=MidB(ConStr,Start,Over-Start)
'response.write getBody
'응답.끝
기능 종료
'================================================ = =
'함수 이름: GetArray
'기능: $Array$로 구분된 링크 주소를 추출합니다.
'파라미터: ConStr ------주소의 원래 문자를 추출합니다.
'매개변수: StartStr ------시작 문자열
'매개변수: OverStr ------끝 문자열
'매개변수: IncluL ------StartStr 포함 여부
'Parameter:IncluR ------OverStr 포함 여부
'================================================ = =
함수 GetArray(Byval ConStr,StartStr,OverStr,IncluL,IncluR)
ConStr=$False$ 또는 ConStr= Or IsNull(ConStr)=True 또는 StartStr= Or OverStr= 또는 IsNull(StartStr)=True Or IsNull(OverStr)=True인 경우
GetArray=$False$
종료 기능
종료 조건
희미한 TempStr,TempStr2,objRegExp,일치,일치
온도Str=
objRegExp = 새 Regexp 설정
objRegExp.IgnoreCase = 참
objRegExp.Global = 참
objRegExp.Pattern = (&StartStr&).+?(&OverStr&)
일치 항목 설정 =objRegExp.Execute(ConStr)
경기의 각 경기에 대해
TempStr=TempStr & $Array$ & Match.Value
다음
일치 항목 설정=없음
TempStr=이면
GetArray=$False$
종료 기능
종료 조건
TempStr=오른쪽(TempStr,Len(TempStr)-7)
IncluL=False인 경우
objRegExp.Pattern =StartStr
TempStr=objRegExp.Replace(TempStr,)
다음과 같은 경우 종료
InclR=False인 경우
objRegExp.Pattern =OverStr
TempStr=objRegExp.Replace(TempStr,)
다음과 같은 경우 종료
objRegExp=nothing으로 설정
일치 항목 설정=없음
TempStr=이면
GetArray=$False$
또 다른
GetArray=TempStr
다음과 같은 경우 종료
기능 종료
함수 getAlexaRank(weburl)
tempurl=getDomainUrl(웹URL)
'http://client.alexa.com/common/css/scramble.css에서 데이터를 읽습니다.
alexacss=http://client.alexa.com/common/css/scramble.css
strAlexaCss=GetHttpPage(alexacss)
'response.write strAlexaCss
'응답.끝
alexarankqueryurl=http://www.alexa.com/data/details/traffic_details/&tempurl
strAlexaContent=GetHttpPage(alexarankqueryurl)
Rankcontent=getBody(strAlexaContent,정보 서비스.-->,<!-- google_ad_section_end(name=default) -->,false,false)
'스팬 클래스를 가져옵니다
strspan=GetArray(순위콘텐츠,<span 클래스=,,false,false)
'응답.순위내용 쓰기&<br>
'response.write strspan&<br>
'응답.끝
strspan<>$False$이면
aspan=split(strspan,$Array$)
i=0인 경우 UBound(aspan)로
'response.write .&aspan(i)
'span의 클래스인 asspan(i)이 alexacss에 존재하는지 확인합니다. 존재하는 경우 해당 범위와 해당 범위의 데이터를 제거해야 합니다.
InStr(strAlexaCss,.&aspan(i))>=1이면
'response.write asspan(i)&<br>
'응답.끝
'속성이 없으며 대체되어야 함을 나타냅니다.
Rankcontent=ScriptHtml(rankcontent,span,2,aspan(i))
또 다른
Rankcontent=ScriptHtml(rankcontent,span,1,aspan(i))
다음과 같은 경우 종료
다음
'위에서 제거한 오른쪽의 스팬 태그를 교체합니다.
순위콘텐츠=교체(순위콘텐츠,</span>,)
종료 조건
순위콘텐츠=$False$인 경우
순위콘텐츠=데이터 없음
다음과 같은 경우 종료
getAlexaRank=교체(순위콘텐츠,,,)
기능 종료
url=request.querystring(url)
%>
<양식 이름=alexaform 방법=get>
입력 URL:<입력 유형= 이름=url 값=<%=url%> 크기=40> <입력 유형=제출 값=쿼리>
</form>
<%
만약 url<> 그렇다면
response.write 귀하의 웹사이트 ALEXA 순위는 다음과 같습니다:
응답.플러시
순위=getAlexaRank(url)
응답.쓰기 순위
다음과 같은 경우 종료
%>