В этой статье в основном рассказывается, как Asp использует Microsoft.XMLHTTP для сканирования веб-контента (без искаженных символов) и фильтрации необходимого контента.
Asp использует Microsoft.XMLHTTP для сканирования веб-контента (без искаженного кода) и фильтрации необходимого контента.
Пример исходного кода:
Скопируйте код кода следующим образом:
<%
Dim xmlUrl,http,strHTML,strBody
xmlUrl = Request.QueryString("u")
REM читает исходный код XML асинхронно
Установите http = server.CreateObject("Microsoft.XMLHTTP")
http.Откройте «POST»,xmlUrl,false
http.setrequestheader "Агент пользователя", "Mozilla/4.0"
http.setrequestheader «Соединение», «Поддержание активности»
http.setRequestHeader «Тип контента», «application/x-www-form-urlencoded»
http.Отправить()
стрHTML = BytesToBstr(http.ResponseBody)
установить http = ничего
REM захватывает основной контент
strBody = GetBody(strHTML,"<divDiv_newsContentc""cnt"">","</div>",0,0)
strBody =Replace(strBody,"(Эта статья впервые была опубликована в ","")
strBody =Replace(strBody,"Wealth Power Network</a>, укажите источник для перепечатки.)","")
strBody =Replace(strBody,"Эта статья была впервые опубликована в, при перепечатке указывайте источник.)","")
strBody =Replace(strBody,"Сеть богатства</a>:","")
strBody =Replace(strBody,"Эта статья была впервые опубликована в","")
Response.Write RegRemoveHref(strBody)
REM получает HTML соответствующего ответа URL.
Функция BytesToBstr(тело)
тусклый объектный поток
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Открыть
objstream.Напишите тело
objstream.Position = 0
objstream.Type = 2
objstream.Charset = "UTF-8"
'Преобразуйте исходную кодировку UTF-8 по умолчанию в кодировку GB2312, в противном случае используйте ее напрямую
«XMLHTTP получит искаженный код при вызове веб-страницы с китайскими иероглифами.
BytesToBstr = objstream.ReadText
objstream.Close
установить objstream = ничего
Конечная функция
REM использует регулярные выражения для захвата содержимого, отмеченного внутри
Функция GetBody(ConStr,StartStr,OverStr,IncluL,IncluR)
Если ConStr="$False$" или ConStr="" или IsNull(ConStr)=True или StartStr="" или IsNull(StartStr)=True или OverStr="" или IsNull(OverStr)=True Тогда
GetBody="$False$"
Выход из функции
Конец, если
ДимКонСтрТемп
Тусклый старт, окончено
ConStrTemp=Lcase(ConStr)
StartStr=Lcase(StartStr)
OverStr=Lcase(OverStr)
Start = InStrB(1, ConStrTemp, StartStr, vbBinaryCompare)
Если Начало<=0, то
GetBody="$False$"
Выход из функции
Еще
Если IncluL=False Тогда
Старт=Старт+LenB(СтартСтр)
Конец, если
Конец, если
Over=InStrB(Start,ConStrTemp,OverStr,vbBinaryCompare)
Если Over<=0 или Over<=Start, то
GetBody="$False$"
Выход из функции
Еще
Если InclR=True Тогда
Over=Over+LenB(OverStr)
Конец, если
Конец, если
GetBody=MidB(ConStr,Start,Over-Start)
Конечная функция
REM фильтрует гиперссылку
Функция RegRemoveHref(HTMLstr)
Установить ra = Новое регулярное выражение
ra.IgnoreCase = Истина
ra.Global = Истина
ra.Pattern = "<a[^>]+>(.+?)</a>"
RegRemoveHref = Заменить(ra.replace(HTMLstr,"$1"),"href=""http://www.927953.com""","")
КОНЕЦ Функция
%>
Визуализации следующие: