Пятница, 26.04.2024, 06:18
Приветствую Вас Гость | RSS
Главная | БЛОГ | Регистрация | Вход
Меню сайта
Форма входа
Категории раздела
WEB-Дизайн [2]
HTML, CSS, JAVA-Script
PHP [2]
Описание языка, скрипты, работа с MySQL
Технология .NET [6]
C#, ASP, основные принципы
Операционные системы [1]
Linux [1]
Все о Linux.
Бытиё [1]
Моя жизнь, мысли, переживания и размышления...
Поиск
Календарь
«  Ноябрь 2009  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
30
Архив записей
Наш опрос
На каком языке вы предпочитаете программировать?
Всего ответов: 791
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Блог йуного кодера
Главная » 2009 » Ноябрь » 6 » Работа PHP через Proxy сервер
00:48
Работа PHP через Proxy сервер
Не так давно пришлось создавать парсер для yandex каталога. И практически сразу же столкнулся с проблемой. Yandex не дает делать много запросов с одного IP, не помогла даже функция slep(). Решил я эту проблему, использовав прокси сервера. В этой статье я напишу как можно легко открывать и обрабатывать страницы через proxy.

Допустим нам необходимо открыть некую страницу через прокси сервер. Пусть это будет - http://market.yandex.ru/model.xml?modelid=3882502&hid=91491&int_lnk=p-goods. Рассмотим код:

 $proxy_ip='113.6.255.107';
 $proxy_port=80;
 $host="market.yandex.ru";
 $url="model.xml?modelid=3882502&hid=91491&int_lnk=p-good";
 $url=str_replace(" ", "%20", $url);
 $sock = fsockopen($proxy_ip, $proxy_port, $errno, $errstr, 10);
 if ($sock){
 fwrite($sock, "GET /$url HTTP/1.0\r\n" .
 "Host: $host\r\n" .
 "\r\n");
 while (!feof($sock))$text.=fread($sock, 128);
 fclose($sock);
 echo $text;

Во-первых определяем IP и порт прокси-сервера. Обозначенный выше в свое время работал, но в будущем за него не ручаюсь. Дальше определяем нужный домен и путь к нужной нам странице.

$url=str_replace(" ", "%20", $url);

Этот код заменяет все пробелы специальными символами, что бы при открытии URL не было никаких косяков.

Далее открываем сокет с заданными параметрами. Если все прошло успешно, то в строку HTTP запроса через сокет добавляем данные URL, который нам необходимо открыть, а затем все то, что пришло ответом на запрос полностью считываем в переменную. Затем нам остается только вывести эту переменную и получить на экране нужную страницу. Да, кстати, не забываем закрывать сокет.

Если возникнуть вопросы, пишите в комментах. Постараюсь оперативно ответить =)

Категория: PHP | Просмотров: 16797 | Добавил: dblog | Теги: PHP, парсинг, url, Прокси, proxy | Рейтинг: 1.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Бесплатный хостинг uCozCopyright MyCorp © 2024