Статьи

Ловля пауков в ASP

Как многие из вас могут понять, дискуссия по поводу предоставления уникального контента веб-пауков (он же «маскировка» ) была горячей темой на SitePoint.com, а форумы были забиты сообщениями. Некоторые люди, поддерживающие эту практику, другие избегают ее, и многие предупреждают о том, какой вред она может нанести вашей репутации с помощью поисковых систем (запрет — это обычное средство против сайтов, которые «маскируют»).

Я собираюсь показать вам некоторые продвинутые алгоритмы, которые я использовал для маскировки своих собственных страниц в ASP, которые, мы надеемся, будут интересны как людям, которые не верят в маскировку, так и тем, кто это делает.

Традиционные методы

Традиционные методы маскировки включают в себя обнаружение USER_AGENT Вы можете получить список общих пользовательских агентов здесь . Разумеется, страница, которую вы обслуживаете, будет богата тегами META и словами, для которых вы хотите оптимизировать свой сайт. Код для достижения этого заключается в следующем. Он должен появиться вверху вашей страницы:

 <%  
Dim spidercheck
Spidercheck = Request.ServerVariables("HTTP_USER_AGENT")
If  Spidercheck = "Googlebot" Then  
Server.Redirect("spiderrichpage.asp")
%>

Те из вас, кто знаком с ASP, смогут расширить этот код для перенаправления, когда он встречает любое из известных имен пауков. Вы можете найти подробный список имен здесь .

Что видят мои посетители?

Поскольку весь код выполняется на стороне сервера, ваши посетители ничего не увидят. Пауки пойдут в одном направлении, и ваши посетители увидят страницу, на которой находится код. Однако помните, как мы отправили паука на spiderrichpage.asp? Эта страница содержит метатеги и контент, относящийся к вашему сайту. Это страница, которую паук будет индексировать и хранить в своей базе данных; поэтому это также будет страница, которая появляется в результатах поиска.

Поскольку мы не хотим, чтобы ваши потенциальные посетители видели уродливую страницу META Tag, содержащую пауко-ориентированное содержимое, мы также должны поместить код на эту страницу, чтобы отправлять посетителей на страницу, которую вы хотите, чтобы они увидели.

Итак, вверху spiderrichpage.asp мы вставляем:

 <%  
Dim spidercheck
Spidercheck = Request.ServerVariables("HTTP_USER_AGENT")
If  Spidercheck <> "Googlebot" Then  
Server.Redirect("visitorpage.asp")
%>
Нетрадиционный алгоритм

Итак, мы подали страницу для конкретного имени паука. Но что, если поисковые системы сопротивляются? Предположим, они пытаются обмануть наши сценарии, используя имена пауков, которые почти идентичны пользовательским агентам, используемым для идентификации браузеров. Любой, кто ведет веб-журналы, распознает следующие пользовательские агенты:

Mozilla / 5.0 (совместимо; MSIE 6.0; Windows 2000)
Mozilla / 4.0 (совместимый; MSIE 6.0; Windows NT 5.1; MSIECrawler)

Какой паукообразный есть какой?

Найди паука? Да все верно! Тот, у кого MSIECrawler в качестве агента пользователя — это паук. Многие пауки стараются быть милыми и близкими к именам браузера, чтобы их не заметили и не перенаправили. Как вы можете бороться с этим? Ну, в ASP есть хорошая функция, уже встроенная в язык, чтобы помочь нам!

  InstrIN STRING  Другая проблема с моим исходным кодом заключается в том, что он обнаруживает только одного паука за раз (если вы не расширили его для использования операторов  IF THEN ELSE   Сейчас я собираюсь попытаться убить двух пауков одной баллончиком от мух!  Объект словаря может быть легко добавлен, поскольку в журналах вашего сайта появляется больше имен пауков: 

 <% 
 Sub AddViolation(objDict, strWord)
   'Adds a violation (a robot in this case)
   objDict.Add strWord, False
 End Sub
 Function CheckStringForViolations(strString, objDict)
   'Determines if the string strString has any violations
   Dim bolViolations
   bolViolations = False
   Dim strKey
   For Each strKey in objDict
     If InStr(1, strString, strKey, vbTextCompare) > 0  
       bolViolations = True
       objDict(strKey) = True
     End If
   Next
 CheckStringForViolations = bolViolations
 End Function
 Dim objDictViolations
 Set objDictViolations = Server.CreateObject("Scripting.Dictionary")
 AddViolation objDictViolations, "Googlebot"
 AddViolation objDictViolations, "Lycos"
 AddViolation objDictViolations, "Ultraseek"
 AddViolation objDictViolations, "Sidewinder"
 AddViolation objDictViolations, "InfoSeek"
 AddViolation objDictViolations, "Scooter"
 AddViolation objDictViolations, "WebCrawler"
 AddViolation objDictViolations, "UTV"
 Dim strCheck, strKey
 strCheck = Request.ServerVariables("HTTP_USER_AGENT")
 If Len(strCheck) > 0 then
   If CheckStringForViolations(strCheck, objDictViolations) then
 Response.Redirect("spiderrichpage.asp")
   Else
Response.Redirect("userpage.asp")
   End If
 End If
%>

Теперь у нас есть способ добавлять пауков по мере их появления и обслуживать их на специальной странице. Вы, продвинутые программисты, сможете отправлять разные страницы для разных пауков - я оставлю это в качестве учебного упражнения.

Инновационный Алгоритм

Этот следующий алгоритм довольно интересен. Как знают все веб-дизайнеры и разработчики, теги META все еще играют небольшую роль в некоторых системах размещения в поисковых системах. Что ж, если бы мы могли изменить наши метатеги так, чтобы они соответствовали тому, что ищут пауки? Да, это возможно Мы можем использовать HTTP_REFERRER

 <%  
 
If InStr( Request.ServerVariables("HTTP_REFERER"), "google") > 0 Then  
KeyURL = Request.ServerVariables("HTTP_REFERER")  
'KeyURL = "http://www.google.com/search?hl=en&ie=  
ISO-8859-1&q= spider+food+for+fun&btnG=Google%20Search"  
 
' Remove all up to q=  
KeyLen = Len(KeyURL)  
kStart = InStr( KeyURL, "q=" )  
kStart = kStart  + 1  
KeyRight = KeyLen - kStart  
Keyword = Right( keyURL, KeyRight )  
 
' Check for trailing query string and remove text  
If Instr(Keyword, "&") > 0 Then  
kEnd = InStr(Keyword, "&")  
kEnd = kEnd - 1  
Keyword = Left( Keyword, kEnd )  
End If  
 
' Turn encoding into text phrase  
Keyword = Replace(Keyword, "+"," ")  
Keyword = Replace(Keyword, ",",", ")  
Keyword = "," & Keyword  
End If  
%>

Как мне это использовать?

Теперь вы можете вписать это ключевое слово в свой контент, используя Response.Write (ключевое слово). Это может быть пространство для ваших мета-тегов или html-слой, скрытый за страницей.

Советы и приемы

Код, представленный в этой статье, может быть легко изменен, и, проявив немного творчества, вы сможете разработать несколько интересных алгоритмов. Вы можете изменить его так, чтобы он обслуживал разные страницы для каждого паука, и, возможно, отслеживать их в базе данных или разработать систему статистики для веб-сообщества, чтобы отображать частоту посещений паука вашим сайтом.

Есть много отличных рекламных инструментов для оптимизации страниц, которые вы планируете подавать паукам. Ссылки, используемые в этой статье, перечислены ниже, а также некоторые дополнительные функции, которые могут быть вам интересны при оптимизации страниц.