Сделать ссылку полностью невидимой?

Я почти уверен, что многие люди думали об этом, но по какой-то причине я не могу найти ее с помощью поиска Google и StackOverflow .

Я хотел бы сделать невидимую ссылку (занесенную в черный список robots.txt) на страницу CGI или PHP, которая будет «ловить» вредоносных ботов и пауков. Пока что пробовал:

  1. Пустые ссылки в теле:

        Я хотел бы сделать невидимую ссылку (занесенную в черный список robots.txt) на ...  

    Я почти уверен, что многие люди думали об этом, но по какой-то причине я не могу найти ее с помощью поиска Google и StackOverflow .

    Я хотел бы сделать невидимую ссылку (занесенную в черный список robots.txt) на страницу CGI или PHP, которая будет «ловить» вредоносных ботов и пауков. Пока что пробовал:

    1. Пустые ссылки в теле:

          Я хотел бы сделать невидимую ссылку (занесенную в черный список robots.txt) на ...  

      Я почти уверен, что многие люди думали об этом, но по какой-то причине я не могу найти ее с помощью поиска Google и StackOverflow .

      Я хотел бы сделать невидимую ссылку (занесенную в черный список robots.txt) на страницу CGI или PHP, которая будет «ловить» вредоносных ботов и пауков. Пока что пробовал:

      1. Пустые ссылки в теле:

           
        

        В большинстве случаев это работает нормально, с двумя небольшими проблемами:

        Проблема: Ссылка является частью тела документа. Несмотря на то, что по нему практически невозможно щелкнуть мышью, некоторые посетители все равно случайно нажимают на него во время навигации по сайту с помощью Tab и Enter . Кроме того, если они, например, копируют и вставляют страницу в текстовый редактор или программу электронной почты, ссылка-ловушка копируется вместе и иногда даже становится кликабельной (некоторые программы не любят пустые теги и скопируйте href как содержимое тега).

      2. Невидимые блоки в теле:

         
        

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

        Проблема: Ссылка все еще является частью DOM. Если пользователь скопирует и вставит содержимое страницы, оно появится снова.

      3. Внутри блоков комментариев:

          trap  ->
        

        Это эффективно удаляет ссылку из DOM страницы. Что ж, технически комментарий по-прежнему является частью DOM, но он обеспечивает желаемый эффект, заключающийся в том, что соответствующие пользовательские агенты не будут генерировать элемент A, поэтому это не настоящая ссылка.

        Проблема: Большинство пауков боты в настоящее время достаточно умны, чтобы анализировать (X) HTML и игнорировать комментарии. Я лично видел ботов, которые используют объекты Internet Explorer COM / ActiveX для анализа (X) HTML и извлечения всех ссылок через XPath или Javascript. Эти типы ботов не обманом переходят по гиперссылке-ловушке.

      Я использовал метод № 3 до прошлой ночи, когда меня поразила стая ботов, которые, кажется, действительно избирательно выбирают, по каким ссылкам они переходят. Теперь я вернулся к методу №2, но все еще ищу более эффективный способ.

      Любые предложения, a = a.match (/ (^ \% \ w +) ([\. | \ #] \ w +) + /) m работает над некоторым кодом SocketChannel-to-SocketChannel, который лучше всего справится с прямым байтовым буфером - долгоживущим и большим (от десятков до сотен мегабайт на соединение). При хешировании точного ...

      Я работаю на некотором коде SocketChannel -to- SocketChannel , который лучше всего работает с прямым байтовым буфером - долгоживущим и большим (от десятков до сотен мегабайт на соединение). структура цикла с FileChannel s, я провел несколько микро-тестов производительности ByteBuffer.allocate () по сравнению с ByteBuffer.allocateDirect () .

      сюрприз в результатах, который я не могу объяснить. На приведенном ниже графике есть очень явный провал в 256 КБ и 512 КБ для ByteBuffer. allocate () реализация передачи - производительность упала на ~ 50%! Также кажется, что для ByteBuffer.allocateDirect () падение производительности должно быть меньше. (Серия% -gain помогает визуализировать эти изменения.)

      Размер буфера (байты) в зависимости от времени (MS)

      The Pony Gap

      Почему разница кривой производительности между ByteBuffer.allocate () и ] ByteBuffer.allocateDirect () ? Что именно происходит за кулисами?

      Это очень хорошо, возможно, зависит от оборудования и ОС, так что вот эти подробности:

      • MacBook Pro с двухъядерным процессором Core 2 CPU
      • SSD-накопитель Intel X25M
      • OSX 10.6.4

      Исходный код, по запросу: 7 в / Library / Frameworks . Я компилирую для Mac OS X 4, поэтому у меня также есть Python 2.3 в /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks . Если я вызываю gcc с -F / Library / Frameworks и смотрю, что он делает с -v , я вижу следующее:

      ignoring duplicate directory "/Library/Frameworks"
        as it is a non-system directory that duplicates a system directory
      
      #include "..." search starts here:
      #include <...> search starts here:
       
       /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks (framework directory)
       /Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks (framework directory)
      

      Т.е. он игнорирует my / Library / Frameworks , потому что он является дубликатом (последнего пути, который является символической ссылкой на / Library / Frameworks ), а затем находит собственный фреймворк Python 2.3 до моего 2.7.

      Я понимаю, как это обойти (например, используйте -I с полным путем к подключаемому каталогу), но меня несколько озадачивает порядок поиска. Например, компоновщик ( ld ) , похоже, выполняет поиск в системе / библиотеке и библиотеке в другом порядке . Допустим, у меня есть два черных изображения с 50% прозрачностью (альфа = 0,5). если они накладываются друг на друга, ...

      позволяет предположить, что альфа 1 означает полностью непрозрачный, а 0 означает полностью прозрачный. допустим, у меня есть два черных изображения с 50% прозрачностью (альфа = 0,5).

      если они накладываются друг на друга, результирующая прозрачность будет 0,75, не так ли?

      если бы у них альфа была 0,25 , результат будет около 0,5, не так ли?

      если бы у них был альфа 0,9, результат был бы около 0,97, верно?

      как вы можете получить эти числа?

      другими словами, я ищу функцию, которая получает результирующее альфа-значение из двух других альфа-значений.

      float alpha = f(float alphaBelow, float alphaAbove)
      {
           //TODO implement
      }
      

10
задан clamp 7 September 2010 в 13:05
поделиться