cURL пример эмуляции браузера

Воскресенье, 16 Октябрь 2011

 

В настоящее время контент для сайтов в интернете превратился в самое настоящее сырье или продукт, размещение и копирование контента приобрело по настоящему промышленные масштабы, по сети бродит огромное количество ботов-парсеров, парсеров Яндекс Маркета, досок объявлений, парсеров RSS лент и прочих бездушных созданий :). Но в этой статье речь пойдет не о парсинге как таковом, а лишь об одной его части - получение HTML кода страницы сайта посредством эмуляции работы браузера, которое возможно при использовании библиотеки CURL .

 

Библиотека CURL это свободно распространяемая консольная программа, которая устанавливается на web сервер, она имеет привязку к более чем 30 языкам программирования. Используется для передачи файлов между серверами по протоколам:

 

 

 

В данной заметке я приведу пример получения данных (html) страницы с помощью CURL по протоколу HTTP, при этом будет эмулироваться работа web браузера посредством подмены CURL передаваемых заголовков (Header). И сервер которому отправляется запрос через CURL определит этот запрос как обычный запрос клиентского браузера пользователя.

 

И так приступим. Для начала вы должны убедится в том что на вашем сервере установлен CURL , если у вас Denwer - то CURL на нем не установлен! Для проверки используйте функцию:

 

  •  
  • <?php
  • echo php_info();
  • ?>
  •  

 

Также расширение libcurl должно быть включено в конфигурационном файле php.ini, на большинстве современных и нормальных хостинг площадках, расширение CURL включено по умолчанию. И так если вы все проверили и CURL поддерживается приступаем к написанию простой функции примера работы с CURL по протоколу HTTP.

 

Функция на вид очень проста т.к все манипуляции выполняет сама библиотека CURL , а мы всего лишь инициализируем ее работу и устанавливаем определенные опции:

 

  •  
  • <?php
  • ini_set('max_execution_time', 600);
  •  
  • function curl_get($host, $referer = null){
  • $ch = curl_init();
  •  
  • curl_setopt($ch, CURLOPT_HEADER, 0);
  • curl_setopt($ch, CURLOPT_REFERER, $referer);
  • curl_setopt($ch, CURLOPT_USERAGENT, "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51");
  • curl_setopt($ch, CURLOPT_URL, $host);
  • curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  • curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  • curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  •  
  • $html = curl_exec($ch);
  • echo curl_error($ch);
  • curl_close($ch);
  • return $html;
  • }
  •  
  • $text = urlencode('мониторы lg');
  •  
  • $result = curl_get("market.yandex.ru/search.xml?text=".$text , 'http://google.com');
  •  
  • echo iconv("utf-8", "cp1251", $result);
  • ?>
  •  

 

Ну а теперь по порядку распишу все что входит в функцию curl_get():

 

 

Описанных опций вполне достаточно для такого простого примера работы с CURL , в этом примере осуществляется запрос к Яндекс маркету с текстом поиска "мониторы lg" - в результате будет выведен список товаров по этому запросу. Далее остается непосредственно сам парсинг товарных позиций, названий товаров, цен, адресов магазинов и прочей информации которая восстребована. Но эта часть не входит в данную статью и поэтому будет рассмотрена в следующий раз, следите за новостями и подписывайтесь на RSS трансляцию.

 

Посмотреть пример CURL : пример CURL

 

Скачать пример CURL : Скачать пример CURL

 

А для веб мастеров зарабатывающих на своих сайтах, или владельцев электронных магазинов рекомендую новый сервис http://sitepolice.ru, с помощью которого вы сможете улучшить свой сайт по очень многим критериям, будь то дизайн, юзабилити, тексты на сайтах, внутренняя оптимизация seo и не только, это сервис в котором работают настоящие профессионалы!

 

PS. Читайте последние записи RSS Подписка на RSS

 

Метки:

Добавить комментарий