Разрыв связи средствами PHP

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

Насчет SOCKS учту, не знал.

Что вы скажете насчет
Жаль только нету фильтра по странам.
Кто пользуется?

2Alternator
Вряд ли кто-то проверит но будет смешно админу ресурса с украинского или русского IP увидеть что-то типа:


Я думаю просто нужно взять заголовки 3-5 браузеров разных версий популярных у нас и использовать.
Я конечно попалился когда не знал про User-Agent :)
 
Скрипт действительно работает на локальном компьютере, если его запустить на сервере мне отключат хостинг..
Насчет SOCKS учту, не знал.
Я думаю просто нужно взять заголовки 3-5 браузеров разных версий популярных у нас и использовать.
Я конечно попалился когда не знал про User-Agent :)
Рекомендую не изобретать велосипед для парсинга, а посмотреть в сторону:
 
К сожалению у меня столько постов пока нет.

Спасибо, полезный ресурс.
 
Вот думаю как сделать правильную обработку результата получения страницы с помощью CURL.
Пока есть такой код:
PHP:
function get_web_page($url,$proxy,$uagent)
{

	$ch = curl_init($url);

	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   // возвращает веб-страницу
	curl_setopt($ch, CURLOPT_HEADER, 0);           // не возвращает заголовки
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);   // переходит по редиректам
	curl_setopt($ch, CURLOPT_ENCODING, "");        // обрабатывает все кодировки
	curl_setopt($ch, CURLOPT_USERAGENT, $uagent);  // useragent
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); // таймаут соединения
	curl_setopt($ch, CURLOPT_TIMEOUT, 120);        // таймаут ответа
	curl_setopt($ch, CURLOPT_MAXREDIRS, 10);       // останавливаться после 10-ого редиректа
	curl_setopt($ch, CURLOPT_PROXY, $proxy);

	$content = curl_exec( $ch );
	$err     = curl_errno( $ch );
	$errmsg  = curl_error( $ch );
	$header  = curl_getinfo( $ch );	
	curl_close( $ch );

	$header['errno']   = $err;
	$header['errmsg']  = $errmsg;
	$header['content'] = $content;

	echo "<b>ERROR:</b> ".$header['errno']."<br>";
	
	if(!empty($header))
	{
		if($header['errmsg']!=FALSE) { echo "<b>ERROR:</b> ".$header['errmsg']."<br>"; }
	}
	echo "<b>HTTP:</b> ".$header['http_code']."<br>";

	if($header['errno']==0 AND $header['http_code']==200)
	{
		if (strpos($header['content'], "/html"))
		{
			return $header['content'];
		}
		
	}
	else
	{
		if($header['errno']!=0)
		{
			// Запрашиваем другой прокси
		}
		if($header['http_code']!=200)
		{
			// Циклим процесс закачки страницы
		}
	}
}
$url = "http://site.com/";
$proxy = "87.118.126.186:80";
$uagent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8";
$pg = get_web_page($url,$proxy,$uagent);
echo "<br>".$pg."<br>";

У меня вопрос, может ли быть загружена страница и при этом возвращаемый код отличный от "200"?

Не слишком жесткое условие?
PHP:
if($header['errno']==0 AND $header['http_code']==200)

Т.е. конечная цель определить в чем проблема:
1. Прокси умер
2. Проблемы на целевом сервере
 
У меня вопрос, может ли быть загружена страница и при этом возвращаемый код отличный от "200"?
Не слишком жесткое условие?
PHP:
if($header['errno']==0 AND $header['http_code']==200)
Т.е. конечная цель определить в чем проблема:
1. Прокси умер
2. Проблемы на целевом сервере
да, может быть загружена, и при этом быть не 200
самый распространенный случай:
своя 404-я ошибка, с особым текстом.так часто делают.
а вообще практически каждый код можно дополнить текстом.


проблемы на целевом сервере будут отображатся на http_code во всем своем разнообразии.
сетевые проблемы будут отображатся на errno
при этом http_code обычно становится 0
 
Не могу разобраться в 2х вещах:
1. Почему ресурс меня все равно банит(анонимность проксей?).
2. Почему CURL наглухо виснет на мертвых проксях.

Вот исходник функции на PHP:

Скрипт стал работать ОЧЕНЬ медленно :(
 
извиняюсь если не в тему.
я и так знаю, что мое сообщение тут не в масть.
но ваша проблема уже больше соовтетсвует оплачиваемой помощи.
вдля того чтобы вам помочь, нужно разорбратся с конкретным ресурсом, и ег методам защиты, и вашей работы с ним.
это выходит за рамки вопосов для новичков, и уже вопрос из разряда тех, на которые надо потратить не менее полгода времени в той области, в которой немногие имеют опыт.
в том смысле, что опыт нужен причем возможно тот, что зарабатывается сложнее чем чтением мануалов.

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