Работа через PROXY сервера на PHP с помощью библиотеки CURL
Добавлен: 2012-06-06 01:25:31
Работа через 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: