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

 

Метки:

Комментарии 

 
anonim Вторник, 20 Январь 2015

Добырй день.
Ваш скрипт у меня 1 раз выполнился нормально, но теперь при запуске все время выдает "transfer closed with outstanding read data remaining" не подскажите что это может быть?

 

 
 
ghost Воскресенье, 17 Январь 2016

Раз за целый год не подсказали - то и не ждите ответа.

 

 
 
Александр Вторник, 31 Май 2016

Спасибо, пригодилось при разработке сайта Websash

 

 
 
NoName Воскресенье, 31 Июль 2016

Здравствуйте. Использовал ваши советы для составления сайта отдыха в россии http://yavotpuske.ru Спасибо!

 

 
 
Мрак Понедельник, 24 Октябрь 2016

Все работате, вот что получилось http://онлайн-общение.рф

 

 
 
Art Воскресенье, 18 Декабрь 2016

Спасибо! Все получилось.

 

 
 
Дмитрий Четверг, 29 Декабрь 2016

не полностью раскрыта суть. ни слова не говорится о SSL
Попробуйте получить данные с сайта, к примеру kinopoisk.ru

 

 
 
Nancee Четверг, 24 Август 2017

Thanks for finally writing about >cURL пример
эмуляции браузера

 

 

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