[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с парсингом через прокси
l@pteff
Всем привет, делаю парсинг новостей с сайта:
 
$curl=curl_init("http://news.sportbox.ru/taxonomy/term/18149/0/feed");
$proxy='domain_name\login:password@IP:port';

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_PROXY, $proxy);

$content=curl_exec($curl);
preg_match_all('#<category(.*)>(.*)</category>#siU', $content, $regs);
foreach ($regs[2] as $reg) {
$a++; if ($a>5) break;
echo "<b>$reg</b><br>";
}


Без прокси работает, все норм, если использовать прокси, то выводится не то что нужно:
Цитата

http://news.sportbox.ru/Vidy_sporta/Futbol...ty/Angliya/mufc ru http://s.sportbox.ru/smart/images/sportbox_logo.jpg http://news.sportbox.ru/ http://news.sportbox.ru/Vidy_sporta/Futbol...i-dvuh-loshadey Обозреватель ВВС Джонатан Стивенсон, подводя итоги второго тура английской премьер-лиги, обратил внимание на юный возраст футболистов &laquo;Манчестер Юнайтед&raquo;,

ну и т.д. и т.п.
Возможно, что-то совсем не то делаю, подскажите в какую сторону копать...



Спустя 8 часов, 21 минута, 36 секунд (23.08.2011 - 23:54) walerus написал(а):
Для тех кто использует CURL

// Простое задание курл-опции для работы соединения через прокси:
curl_setopt($ch, CURLOPT_PROXY, ‘XXX.XXX.XXX.XXX:port’);

// Задание курл-опций для работы через SOCKS4:
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4);
curl_setopt($ch, CURLOPT_PROXY, ‘XXX.XXX.XXX.XXX:port’);

// Задание курл-опций для работы через SOCKS5:
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($ch, CURLOPT_PROXY, ‘XXX.XXX.XXX.XXX:port’);

// Задание курл-опции для работы через прокси с авторизацией, 1 вариант:
curl_setopt($ch, CURLOPT_PROXY, ‘login:password@XXX.XXX.XXX.XXX:port’);

// Задание курл-опций для работы через прокси с авторизацией, 2 вариант:
curl_setopt ($ch, CURLOPT_PROXYUSERPWD, ‘login:password’);
curl_setopt($ch, CURLOPT_PROXY, ‘XXX.XXX.XXX.XXX:port’);


Неправильно сформирован у вас PROXY параметр.

curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); // можно не писать, оно стоит по умолчанию.


Ваш случай

$proxy = 'login:password@IP:port'; // Зачем был написан domain_name, я так и не понял
curl_setopt( $ch, CURLOPT_PROXY, $proxy );


или

$proxy_login = 'login:password';
$proxy_IP = 'IP:port';
curl_setopt ( $ch, CURLOPT_PROXYUSERPWD, $proxy_login );
curl_setopt( $ch, CURLOPT_PROXY, $proxy_IP );

Спустя 1 день, 13 часов, 33 минуты, 45 секунд (25.08.2011 - 13:27) l@pteff написал(а):
Переписал так:

$curl=curl_init("http://news.sportbox.ru/taxonomy/term/18149/0/feed");
$proxy_login='login:password';
$proxy_IP='IP:port';

curl_setopt($curl, CURLOPT_PROXYUSERPWD, $proxy_login );
curl_setopt($curl, CURLOPT_PROXY, $proxy_IP );
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

$content=curl_exec($curl);
preg_match_all('#<category(.*)>(.*)</category>#siU', $content, $regs);
foreach ($regs[2] as $reg) {
$a++; if ($a>5) break;
echo "<b>$reg</b><br>";
}

Почему-то вообще ничего не выводится, хотя подключение удаленной страницы вроде как происходит

Спустя 11 часов, 39 минут (26.08.2011 - 01:06) walerus написал(а):
Прокся точно рабочие ? что выводит курл ?, если ничего - то какие ошибки выводит курл ?


$content = curl_exec( $curl );
print_r( $content );


что выдает ?, мб регулярка неверна...

Спустя 3 дня, 10 часов, 29 минут, 20 секунд (29.08.2011 - 11:36) l@pteff написал(а):
Цитата

что выводит курл ?, если ничего - то какие ошибки выводит курл ?

Цитата

ERROR
Cache Доступ запрещён.

При получении URL http://news.sportbox.ru/taxonomy/term/18149/0/feed произошла следующая ошибка

    Доступ к кэшу запрещён.


Спустя 11 часов, 25 минут, 57 секунд (29.08.2011 - 23:02) walerus написал(а):
Ну а где куки ?, про них забыл ?

//настраиваем курл
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1');
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_filename);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_filename);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);

только укажи $cookie_filename и пробуй. Прокся не забудь дописать )

Спустя 11 часов, 41 минута, 43 секунды (30.08.2011 - 10:43) l@pteff написал(а):
walerus, спс вроде заработало

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


Спустя 1 год, 20 дней, 3 часа, 13 минут, 44 секунды (20.09.2012 - 13:57) Guest написал(а):
ph34r.gif blink.gif dry.gif biggrin.gif кто ни бюдь кто что знает напешите

Спустя 41 минута, 12 секунд (20.09.2012 - 14:38) Игорь_Vasinsky написал(а):
Цитата
Ведь эти настройки будут работать только с моей проксей

ест-но, когда разрабы мануал для php писали - они как раз так и подумали: специально напишем библиотеку для него.. остальные пускай бреются.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.