Grab-killer или убиваем граберы контента.

| 1 комментарий | Нет трекбэков

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

Так как сайт о perl, То сперва я представлю вариант на perl:


   1    #!/usr/bin/perl -w
   2    use strict;
   3    use CGI qw(header param);
   4    print header(-charset=>'windows-1251');
   5    my $page=param('page') || 1;
   6    $page=~s/[^0-9]+//g;
   7    my $spage=$page-1;
   8    my $enpage=$page+1;
   9    print qq(
  10    <html><head><title>Grab Killer</title>
  11    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  12    </head><body>
  13    <table width="70%" border="0" align="center">
  14      <tr>
  15        <td width="30%" height="137"> <div align="center">Реклама</div></td>
  16        <td width="44%"> <div align="center">Реклама</div></td>
  17        <td width="26%"> <div align="center">Реклама</div></td>
  18      </tr>
  19      <tr>
  20        <td><div align="center"><a href="?page=$spage">предыдущая</a></div></td>
  21        <td><div align="center">текущая</div></td>
  22        <td><div align="center"><a href="?page=$enpage">следующая</a></div></td>
  23      </tr></table></body></html>);

и не мог не написать нечто похожее на php:


   1    <?php
   2    if(!isset($_GET['page']) or $_GET['page']==0) {
   3        $page=1;
   4    } else {
   5        $page=$_GET['page'];
   6    }
   7    $spage=$page-1;
   8    $enpage=$page+1;
   9    ?> 
  10    <html><head><title>Grab Killer</title><meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  11    </head><body>
  12    <table width="70%" border="0" align="center">
  13      <tr>
  14        <td width="30%" height="137"> <div align="center">Реклама</div></td>
  15        <td width="44%"> <div align="center">Реклама</div></td>
  16        <td width="26%"> <div align="center">Реклама</div></td>
  17      </tr>
  18      <tr>
  19        <td><div align="center">
  20        <?php echo "<a href=\"?page=$spage\">предыдущая</a>"; ?>
  21        </div></td><td><div align="center">текущая</div></td>
  22        <td><div align="center">
  23        <?php echo "<a href=\"?page=$enpage\">следующая</a>"; ?>
  24        </div></td></tr></table></body></html>

разместив такой файл у себя на сайте, и поместив код для показа баннеров вместо текста Реклама, можно и грабителей наказать и даже заработать :)...

Скачать скрипты(архив)

P.S

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

Нет трекбэков

URL для трекбэков: http://perlmonks.org.ru/cgi-bin/MT/engine/mt-tb.cgi/13

1 комментарий

с perl сбор ссылок с сайта - интересная задача. Особенно когда развелось куча пхп скриптов для этого которые в большинстве своем работают медленно и криво. Perl скрипт думаю будет работать быстро и четко! Главное ширина канала чтобы была достаточно большой.

Комментировать

Об этой записи

Сообщение опубликовано 15.04.2009 11:19. Автор — Monks.

Предыдущая запись — Эффективность регулярного выражения.

Следующая запись — Изящное ветвление или мощь Perl с ООП.

Смотрите новые записи на главной странице или загляните в архив, где есть ссылки на все сообщения.

Страницы


 


 

Page copy protected against web site content infringement by Copyscape