Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: можно ли защититься как-то от граббера?
 
 автор: pal4ik   (13.06.2008 в 17:24)   письмо автору
 
 

Скажите пожалуйста существуют ли способы защиты от скриптов-граберов типа:

$site = "http://domain.net/rus/online/62/";
$open=file_get_contents($site,"r");

и т.д.


спрашиваю, потому что почему-то не могу взять контент со страницы:
http://unian.net/rus/online/62

можете подсказать почему? сайт работает нормально.

   
 
 автор: SiM(R)   (13.06.2008 в 18:21)   письмо автору
 
   для: pal4ik   (13.06.2008 в 17:24)
 

Может не:

$site = "http://domain.net/rus/online/62/";

,а:

$site = "http://unian.net/rus/online/62/";

   
 
 автор: pal4ik   (13.06.2008 в 18:33)   письмо автору
 
   для: SiM(R)   (13.06.2008 в 18:21)
 

это понятно. просто вначале не хотел показывать вам какой сайт. (это я в тут исправил на domain)

   
 
 автор: cheops   (13.06.2008 в 19:00)   письмо автору
 
   для: pal4ik   (13.06.2008 в 17:24)
 

Функция file_get_contents() отсылает в качестве USER_AGENT, что-то вроде "PHP", по которому вас могут идентифицировать как скрипт. Нужно подделывать USER_AGENT, подставляя в качестве идентификатора либо робота поисковых систем, либо идентификаторы браузеров. Подробости можно найти в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=17831.

   
 
 автор: BinLaden   (13.06.2008 в 21:25)   письмо автору
 
   для: cheops   (13.06.2008 в 19:00)
 

Касаемо подделки User-Agent:

<?php
$options 
= array('http' =>
    array(
        
'user_agent' => 'Mozilla/5.0 (X11; U; Linux armv6l; ru-RU; rv:1.9a6pre) Gecko/20071128 Firefox/3.0a1'
    
)
);

$context stream_context_create($options);
$content file_get_contents('http://example.com/page.html'false$context);

echo 
$content;
?>

   
 
 автор: Loneliness   (13.06.2008 в 21:30)   письмо автору
 
   для: BinLaden   (13.06.2008 в 21:25)
 

Грабь сокетами, подставляй в заголовки разные юзер агенты каждый раз, и грабь не напрямую, а через анонимайзеры. И все будет как надо и надолго.

   
 
 автор: BinLaden   (13.06.2008 в 22:01)   письмо автору
 
   для: Loneliness   (13.06.2008 в 21:30)
 

> Loneliness (13.06.2008 в 21:30)
> to: BinLaden (13.06.2008 в 21:25)

Спасибо, но мне это не нужно.

   
 
 автор: cheops   (14.06.2008 в 10:34)   письмо автору
 
   для: BinLaden   (13.06.2008 в 21:25)
 

Да, или так, если версия PHP позволяет.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования