Нет, подождите, ломать этот замечательный во всех отношениях поисковик никто не собирается! Ведь под хакерством всегда понималось улучшение характеристик системы, часто не совсем традиционными методами, но все-таки улучшение, а не голимый вандализм.
Чем плох "Апорт"? Точно тем же, что и другие поисковые сервера. Прежде чем окунуться в дремучую чащу запутанных ссылок приходится утомительно дожидаться загрузки главной страницы.
У "Апорта" она, правда, не самая большая, и ничуть не увешенная баннерами, как у некоторых других (вспомнить ту же "Альта-Вситу"), но все же это раздражает. Особенно на медленных каналах.
К тому же комфортным поиск ну никак не назовешь. Приходится постоянно прокручивать экран, что бы отыскать форму ввода, и с досадой обнаруживать, что условия поиска в ней напрочь отсутствуют. А когда ищется что-то вроде ("Кремниевая долина"+история - архив - обозреватель) то каждый раз вводить ее заново становиться утомительно.
Тем более, что как бы хорош ни был "Апорт" требуемого документа он может и не найти и тогда придется отправиться восвояси к другому поисковику, а то еще и не к одному сразу.
И это на пороге нового тысячелетия? А где же автоматизация человеческого труда? Компьютер, если вспомнить, был на то и придуман, что бы решать проблемы, а не создавать новые. Словом, текущее положение вещей нам не нравится, и мы, не дожидаясь милости от далеких забугорных фирм, хотим обеспечить свой комфорт самостоятельно.
Что для этого нужно? Всего лишь найти механизм взаимодействия с поисковой системой напрямую, минуя всякие там web-странички. А дальше его уже будет можно использовать по своему усмотрению.
Например, написать простой скрипт для поиска сразу на множестве серверов. Или хотя бы, по крайней мере, интегрировать поисковик с нашим "Рабочим Столом". А что? Неплохая идея - вот ей сейчас и займемся.
Было бы очень удобно, если бы в уголке рабочего стола сидела простая формочка, в которую стоит только ввести нужный фрагмент, а уж она дальше сама облазит все сайты, обойдет и Черта и Бога, но нужный документ нам найдет.
Вообще-то это тривиальная задача, которую автор решил едва ли не в первые дни после того, как подключился к Интернету. Каково же было его удивление, когда оказалось, что до такой простой штуки додумывались далеко не все его знакомые, которые до сих пор так бы и мучались, проклиная тупость поисковиков, день ото дня плодящихся как грибы.
Начнем сначала с теории. Гипертекст, в его привычном для нас HTML-ом виде, искать ничего не способен. Там просто нет таких функций. Даже Java и VBASIC скрипты не способны к таким операциям, поскольку исполняются на вашей локальной машине и если бы они затребовали всю много гигабайтную базу любого поисковика, то вероятнее, конец света наступил бы раньше, чем она приползла по хлипкому диалапному соединению.
Поэтому возможен только один вариант, - запускать программу поиска на удаленной машине. Это можно осуществить с помощью скриптов (как правило, написанных на Перле, но не обязательно)
Чаще всего у пользователя не оказывается никаких прав доступа к ним, кроме как возможности исполнения. То есть скачать скрипт, что бы разобраться с ним и малость поправить его по своему усмотрению, оказывается нельзя.
Но это и не важно. Все равно в них не содержится ничего интересного, кроме интерфейса, то есть кода, обеспечивающего обмен между собственно самим поисковым кодом и браузером, находящимся на вашей машине.
Запуск при этом может выглядеть как: http://ИмяХоста/ИмяСкрипта?параметры. Именно это и происходит, когда вы работаете с поисковиком нормальным образом. С формы, расположенной на страничке, считывается строка и описанным выше способом передается скрипту на выполнение.
Осталось только узнать имя скрипа и поисковиком будет можно пользоваться, вовсе не обращаясь к его web-страничке, или, например, встроить код вызова в свою собственную! А почему бы и нет? Глядишь, у вас и посещаемость возрастет. Кстати, создание подобной специализированной странички, последовательно опрашивающей все существующие поисковые сервера и каталоги ресурсов, не такая плохая идея и ниже будет показано, как это сделать.
Итак, отправляемся в гости к "Апорту" и дожидаемся окончания загрузки его главной страницы. Теперь необходимо проанализировать HTML-код и найти то место, в котором происходит вызов скрипта и передача ему параметров.
Непосвященным в тонкости программирования гипертекста скажу, что в большинстве случаев для этого достаточно найти следующую последовательность "form action=" Она,конечно, не единственно возможный вариант, но весьма популярный среди разработчиков, так что этот прием срабатывает достаточно часто.
Итак, выбираем в меню "Вид" пункт "В виде HTML" и находим следующие строки:
table border=0 cellpadding=0 cellspacing=0 width=700
form action=http://www.aport.ru/search.asp method=get name=form1
Смотрите, что бы обратиться к поисковому механизму напрямую, достаточно вызвать search.asp и передать ему в качестве параметра требуемые критерии поиска.
Например, попробуем найти всю доступную информацию о фирме Microsoft. Наберем для этого в строке браузера следующее: http://www.aport.ru/search.asp?r=Microsoft и пройдет совсем-совем немного времени, как "Апорт" подумает и выдаст следующее:
Апорт нашел 1000 документов на 341 сайте по запросу: Microsoft
Неплохо для начала, не так ли? Мы не только сэкономили чуточку времени, но и получили возможность без труда встраивать вызовы поискового механизма в свои странички. Как вам понравится следующее:
Точно так же можно обращаться и к другим сайтам, не только к апорту. Кстати, формат вызова скриптов с других поисковиков можно узнать на странице того же "Апорта".
Поисковик
URL скрипта
АльтаВиста
http://www.altavista.com/cgi-bin/query
Yahoo!
http://search.yahoo.com/bin/search
Lycos
http://www.lycos.com/cgi-bin/pursuit
Infoseek
http://infoseek.go.com/Titles
HotBot
http://www.hotbot.com
MSN
http://search.msn.com/results.asp
И совсем несложными приемами можно передать один запрос множеству серверов. Но вот только в чем незадача. Все они откроют кучу окон, куда начнут вываливать уйму бесполезной информации, которая большей частью будет дублироваться.
Наверное поэтому, такой подход так и не завоевал популярности, и мы до сих пор по старинке перебираем все сервера друг за другом пока не найдем хоть что-то интересное.
Но хакеры мы или нет? Неужели не существует красивого и оригинального решения. К счастью оно есть и ниже будет рассказано, как это сделать.
В чем основная трудность в подобном подходе? Нам не нравится то, что разбор ответов множества поисковиков ложится на наши плечи, а его прием на наш хлипкий канал. Вот если бы у нас был шустрый сервер, который мог бы все это принять, обработать, отсортировать, исключить повторяющиеся ссылки и вернуть в виде компактного ответа на нашу машину... Да, вот еще бы он и ссылки заодно проверил, не мертвые ли они там чай (известная "болезнь" всех поисковиков)
Но такой сервер у нас как раз таки есть, то есть может быть! Как говорилось выше, перловые (да и не только) скрипты можно выполнять на удаленном компьютере. То есть, говоря другими словами, на сервере с быстрым каналом, который принимает мегабайты информации, обрабатывает ее и возвращаем нам компактный и лаконичный ответ.
Остается только найти службу, предоставляющую халявный доступ к CGI-BIN директории, то есть к той самой, куда мы и поместим наш перловый скрипт. Вообще-то за такой сервис принято взимать хотя бы символическую плату, но некоторые провайдеры расщедриваются на него бесплатно. Загляните, например, к http://www.virtualave.net/. Правда, хостиг вам предоставят не стразу, а в течение суток (как правило, только на следующий день), но это приемлемый срок, да и при желании можно найти множество других мест в Интернете с аналогичным сервисом. Не все из них, правда, будет шибко быстрыми, так что проверяйте этот аспект в первую очередь.
Теперь, собственно, остается всего-навсего написать такой скрипт. На само же деле это "всего-навсего" представляет трудную нетривиальную задачу и может отнять много времени, в течение которого существует хорошая возможность освоить все тонкости Перла или любого другого языка.
Ведь в CGI-BIN директории можно исполнить любой файл - от батничка, до программы на Си или Паскаль. Так что выбирайте на чем будете писать такой проект по своему вкусу. А к моменту опубликования этой статьи вы имеете все шансы ознакомиться с разработкой автора, который сейчас и работает над подобной задачей.
Быть может это будет новой вехой в истории развития поисковиков. И быть может среди читателей найдутся те, чей вариант окажется самым привлекательным и войдет в историю. Так что дерзайте.
Но это все относиться к "монстрам" программирования, а для начинающих предложим задачку попроще. Поместим вызов "апорта" на наш активный Рабочий Стол! Так, что бы можно было, не отрываясь от текущего положения дел просто ткнуть мышью в угол экрана, и быстро набить запрос, не отвлекаясь на всякие мелочи.
Вообще-то можно было сохранить страницу "Апорта" на диске и без мучений вывести ее на Рабочий Стол, с чем пятый Эксплорер справляется за раз. Но вот только страничка от "Апорта" слишком громоздкая и на экране ее разместить ну никак не удастся.
На этом собственно и все. Остается только добавить на рабочий стол, "Экран-Свойства-Интернет-Созадть-Aport.htm" и она тут же появиться на нем!
Изменим размеры окна, одновременно с этим растягивая его в ширину. А после отбуксируем в любое место экрана по своему вкусу, так, что бы получилось нечто похожее на следующее:
Наберем теперь критерий поиска и клацнем по кнопке "Search" и нажмем Enter. Если все было сделано правильно, то тут же откроется новое окно браузера и "Апорт" вывалит в него результаты поиска.
Заметим, что при этом они не исчезли из нашей формы. И не потребуется никакого труда ее изменить, например, следующим образом Microsoft + "Билл Гейтс"
Просто? Удобно? А теперь попробуйте сделать так, что бы "Апорт" не открывал нового окна, выдавал ответ в специально отведенное для него место экрана.
Уверяю, что это доставит немалое удовольствие, да и комфорт работы повысит то же. Активный рабочий стол это действительно революционное изобретение Microsoft., в чем вы еще не раз убедитесь.
Фактически вы можете самостоятельно спроектировать и создать среду общения, рассчитанную на ваши привычки и вкусы.
Например, выданный "Апортом" ответ можно дополнительно пропустить через Java скрипт или VBASIC скрипт, можно запоминать и кешировать предыдущие ответы "Апорта", да мало ли, что может вам взбрести в голову!
Так у автора работает бесхитростный скрипт, который по ключевым словам "живая камера" каждый раз ищет что-нибудь новое и случайным образом выводит одну из них в угол экрана. Вроде бы мелочь, а как умеет поднять настроение! KPNC
|