Упомянутый здесь вор имеет в виду использование мощных функций, предоставляемых компонентом XMLHTTP в XML в ASP, для захвата данных (изображений, веб-страниц и других файлов) с удаленного веб-сайта на локальный и отображения их на странице после различной обработки. Или тип программы, хранящейся в базе данных. Вы можете использовать эту программу-вор для выполнения некоторых задач, которые раньше казались совершенно невозможными, например, изменение страниц определенного веб-сайта и превращение их в свои собственные или сохранение некоторых данных (статей, изображений) определенного веб-сайта. для использования в локальной базе данных. Преимущества Thief: нет необходимости поддерживать веб-сайт, поскольку данные в программе Thief поступают с других веб-сайтов и будут обновляться по мере обновления веб-сайта, что позволяет сэкономить много ресурсов сервера; В программе Thief всего несколько файлов, а весь веб-контент взят с других веб-сайтов. Недостатками являются: нестабильность: если целевой веб-сайт пойдет не так, программа также будет работать неправильно, а если целевой веб-сайт обновляется и поддерживается, скорость программы-вора также необходимо будет соответствующим образом изменить, поскольку это удаленный вызов; скорость такая же быстрая, как чтение данных на локальном сервере. Это определенно медленнее. Как насчет этого, звучит потрясающе, правда? Давайте начнем изучать вводные знания о программе Thief прямо сейчас!
Давайте изучим что-нибудь попроще, программу прогноза погоды на сайте QQ.
Код выглядит следующим образом:
<%
При ошибке Возобновить Далее
Server.ScriptTimeOut=9999999
Функция getHTTPage(Путь)
т = GetBody (Путь)
getHTTPPage = BytesToBstr (т, GB2312)
Конечная функция
' Во-первых, выполните некоторые настройки инициализации для программы-вора. Функции приведенных выше кодов заключаются в том, чтобы игнорировать все нефатальные ошибки, установить очень большое время ожидания работы программы-вора (чтобы не возникало ошибок тайм-аута). и преобразовать исходную кодировку по умолчанию. Кодировку UTF-8 необходимо преобразовать в кодировку GB2312. В противном случае прямое использование компонента XMLHTTP для вызова веб-страницы с китайскими символами приведет к искажению кода.
Функция GetBody(url)
при ошибке продолжить дальше
Установить получение = CreateObject(Microsoft.XMLHTTP)
С поиском
.Открыть Get, URL, False, ,
.Отправлять
GetBody = .ResponseBody
Конец с
Установить получение = Ничего
Конечная функция
'Затем вызовите компонент XMLHTTP, чтобы создать объект и выполнить начальные настройки.
Функция BytesToBstr(body,Cset)
тусклый объектный поток
установить objstream = Server.CreateObject(adodb.stream)
objstream.Type = 1
objstream.Mode =3
objstream.Открыть
objstream.Напишите тело
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
установить objstream = ничего
Конечная функция
Функция Newsstring(wstr,strng)
Newstring=Instr(lcase(wstr),lcase(strng))
если Newstring<=0, то Newstring=Len(wstr)
Конечная функция
'Для обработки захваченных данных необходимо вызвать компонент adodb.stream и выполнить настройки инициализации. %>
'Ниже приведена часть отображения страницы
<%
Dim wstr,str,url,начало,конец,город
'Определим некоторые переменные, которые необходимо использовать
город = Request.QueryString(id)
'Переменная ID, возвращаемая программой (то есть город, выбранный пользователем), присваивается id
url=http://appnews.qq.com/cgi-bin/news_qq_search?city=&city&
'Здесь задается адрес страницы, которую необходимо сканировать. Конечно, вы также можете указать адрес напрямую, без использования переменных.
wstr = getHTTPage (URL-адрес)
'Получаем все данные указанной страницы
start=Newstring(wstr, <html>)
'Здесь задается заголовок данных, которые необходимо обработать. Эту переменную следует устанавливать в зависимости от различных ситуаций. Конкретное содержимое можно определить, просмотрев исходный код страницы, которую необходимо сканировать. Поскольку нам нужно сканировать всю страницу в этой программе, мы настроили ее на сканирование всех страниц. Обратите внимание, что заданное содержимое должно быть уникальным для содержимого страницы и не может повторяться.
over=Newstring(wstr, </HTML>)
'Началу соответствует хвост данных, которые необходимо обработать. Аналогично, заданное содержимое должно быть уникальным на странице.
тело = середина (wstr, старт, перезапуск)
'Установим диапазон отображаемых страниц
'Теперь пришло время использовать Qiankun Shift+++. С помощью replace можно заменить указанные символы в данных некоторыми символами.
body = replace(body,skin1,Прогноз погоды-Сеть скинов)
body = replace(body,http://appnews.qq.com/cgi-bin/news_qq_search?city,tianqi.asp?id)
'Работа по замене завершена в данной программе. Если есть другие потребности, можно продолжать выполнять аналогичные операции по замене.
ответ.записать тело
%>
После замены контента, который необходимо изменить, измененный контент может отображаться на странице. Это конец процесса
Использование программы и результаты: удалите часть описания из приведенного выше кода и сохраните ее как tianqi.asp, загрузите в пространство, поддерживающее ASP и XML, и запустите в браузере. На основе этой программы вы можете продолжить украшение интерфейса или оптимизацию программы.
Выше приведены лишь некоторые основные применения компонента XMLHTTP. Фактически, он также может реализовывать множество функций, таких как сохранение удаленных изображений на локальный сервер и использование компонента adodb.stream для сохранения полученных данных в базу данных. Thief имеет широкий спектр функций и применений. Но вы не можете использовать его для совершения противозаконных действий!
Может быть, некоторые люди все еще хотят спросить, является ли такая воровская программа просто патентом ASP? Нет, PHP может добиться того же эффекта с помощью функции fopen. Из-за различных характеристик самого PHP написанная программа-вор имеет очевидные преимущества по размеру и эффективности выполнения по сравнению с ASP. Однако из-за ограничений места я не буду здесь останавливаться. объясните их одно за другим.