Работа через PROXY сервера на PHP с помощью библиотеки CURL

Добавлен: 

Работа через PROXY сервера на PHP с помощью библиотеки CURL

Доброго времени суток, в данной статье опишу возможность получать контент удалённой WEB страницы используя прокси сервер.

Недавно, написал инструмент для автоматической проверки позиций сайта в поисковой выдаче, и всё бы хорошо, но столкнулся с проблемой…

Проблема первая – при большом количестве запросов с одного IP адреса, поисковики заносят данный IP в чёрный список.  Данная проблема решается очень легко, приостанавливая выполнение скрипта между запросами на одну секунду (интервал может быть разный).

Проблема вторая – после 4 -5 го запроса (ключ один, меняется только страница выдачи), яндекс выдаёт страницу, в которой сообщается о подозрении в автоматических запросах, и предлагают ввести капчу, и данное сообщение выплывает независимо от интервала между запросами. Данную проблему можно решить эмулируя клиентское приложение, например, FireFox, но и тут нет гарантии, что IP не попалят. И я решил, использовать 100% вариант с прокси, и так, приступим.

Что нужно, для работы PHP через прокси

Для реализации задуманного, нам понадобится подключить библиотеку libcurl  к движку PHP:

Для Unix систем необходимо собрать PHP с опцией --with-curl[=DIR], где DIR - имя директории, содержащей поддиректории lib и include. Директория "include" должна содержать поддиректорию "curl" с файлами easy.h и curl.h. Директория "lib" должна содержать файл libcurl.a.

Для Windows систем необходимо установить PHP с поддержкой данного модуля, а потом скопировать файлы libeay32.dll и ssleay32.dll из директории DLL Win32 дистрибутива PHP в директорию SYSTEM (Нпример C:\WINNT\SYSTEM32 или C:\WINDOWS\SYSTEM).

Что такое libcurl

Libcurl – это библиотека функций, которая позволяет взаимодействовать движок php с удалёнными серверами, по различным протоколам.

Пример получения контента с удалённой страницы через PROXY:

//создаём функцию
function get_proxy($url, $proxy) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');
curl_setopt($ch, CURLOPT_PROXY, "$proxy");
$ss=curl_exec($ch);
curl_close($ch);
return $ss;
}
//вызываем функцию
$proxy = '112.25.12.37:80';
$content = get_proxy('http://xdroid.org.ua/',$proxy);
echo $content;
?>

А в моём случае, при каждом вызове данной функции,  прокски меняется.

Не забываем оставлять комментарии и отзывы, нам важно ваше мнение!

А еcли статья Вам очень понравилась и Вы считаете, что она достойна внимания. Тогда просто поделитесь ею, в социальной сети:


Интересная рекламма:


Возможно вам будет интересно
Скрипт уменьшения размера изображений на PHP, с масштабированием Генератор паролей на PHP Функция (скрипт) удаления непустых каталогов на PHP – рекурсивное удаление

Комментарий добавил: Гость - Castiel
Добавлен: 25 04 2013 15:11:39
Гость - Castiel
Полезная вещь, долго искал! спс

Комментарий добавил: Гость - Денис
Добавлен: 17 11 2013 17:24:28
Гость - Денис
Отлично, спасибо автору!!

Комментарий добавил: Гость - admin
Добавлен: 14 09 2014 14:32:40
Гость - admin
admin?

Комментарий добавил: admin
Добавлен: 15 09 2014 16:35:37

Комментарий добавил: Гость - наим
Добавлен: 30 11 2014 19:01:24
Гость - наим
Здравствуйте! а почему прокси не изменить мой ip сервера?

Добавление комментария

Имя -

E-mail -





Читать в Яндекс.Ленте

Яндекс.Метрика


Power by xDroid. Copyright © 2009 - 2016 VEB.name
Копирование информации только с обратной ссылкой
Время генерации страницы : 0.0121 сек.