Curl, не верный ответ от сервера (PHP)

12 3
Sanu0074
На сайте с 31.08.2012
Offline
110
1470

Столкнулся с такой интересной задачей, нужно забрать страничку curl'oм (можно и чем то другим), я тестил на этой странице - тыц

В результате возвращаются какието пустые данные, т.е. должно вернуть страницу с данными о игроке, а возвращает какието ноли и "n\a". Получается что браузером нормально отображает а curl'ом криво, вот код который забирает страницу:

            $header [] = "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8";

$header [] = "Accept-Charset: Windows-1251, utf-8, *;q=0.1";
$header [] = "Accept-Encoding: deflate, identity, *;q=0";
$user_agent='Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; MRA 8.2 (build 6901); SLCC2; '
.'.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)';
$ch = curl_init($link);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header );
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$text = curl_exec($ch);
if(curl_getinfo($ch, CURLINFO_HTTP_CODE)==404){
return FALSE;
}
curl_close($ch);
return $text;

Помогите разобраться, может я что-то не посылаю что надо? гугл же наверняка как-то индексирует эту страницу...

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#1

function curl_gets($url){

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_HEADER, true);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

curl_setopt($ch, CURLOPT_MAXREDIRS, 10);

curl_setopt($ch, CURLOPT_ENCODING, 1);

curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, FALSE);

curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT']."/cookie.txt");

curl_setopt($ch, CURLOPT_COOKIEFILE,$_SERVER['DOCUMENT_ROOT']."/cookie.txt");

curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5');

$data = curl_exec($ch);

curl_close($ch);

return $data;

}

echo curl_gets('http://www.hltv.org/?pageid=173&playerid=7167&gameid=2');

Никаких проблем. Жирным выделил из-за чего у вас может быть проблема т.к. страница сжимается GZIP

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Sanu0074
На сайте с 31.08.2012
Offline
110
#2

LEOnidUKG, вы пробовали?

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#3
Sanu0074:
LEOnidUKG, вы пробовали?

Я вам рабочий код дал. Сами то проверьте, что я написал.

Sanu0074
На сайте с 31.08.2012
Offline
110
#4

LEOnidUKG, ну вот я сделал:

class Hltv_get extends CI_Controller {

public function player() {
$url = $_GET['link'];
echo $this->curl_gets($url);
}

public function curl_gets($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_ENCODING, 1);
curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, FALSE);
curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT']."/cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE,$_SERVER['DOCUMENT_ROOT']."/cookie.txt");
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.56 Safari/536.5');


$data = curl_exec($ch);
curl_close($ch);
return $data;
}

}

Результат такойже, ноли и n\a, только вверху заголовки выводятся.. чтото должно содержаться в cookie.txt ??

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#5

У меня отлично выводиться всё.

Проверяйте, возможно ваш IP забанен на hltv.org

И вообще мой код чистый не работает тоже у вас или вы не проверяли, а сразу в обвёртку его?

Sanu0074
На сайте с 31.08.2012
Offline
110
#6

LEOnidUKG, и чистый не работает

---------- Добавлено 29.10.2014 в 23:59 ----------

Sanu0074, если бы ip был забанен то и в браузереб не выводилось, вы сравните результат браузера и через curl

---------- Добавлено 30.10.2014 в 00:01 ----------

LEOnidUKG, и например если главную страницу брать то она как следует выводится, а это криво

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#7
Sanu0074:
LEOnidUKG, и чистый не работает

---------- Добавлено 29.10.2014 в 23:59 ----------

Sanu0074, если бы ip был забанен то и в браузереб не выводилось, вы сравните результат браузера и через curl

У меня и там и там отлично всё выводить. Сделайте скрин, что у вас выводиться. Какой header у вас выводиться?

Sanu0074
На сайте с 31.08.2012
Offline
110
#8

LEOnidUKG, вот скрин

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#9

Ощущение, что у вас урл бьётся.

У вас почему-то вот так получается скрипт обрабатывает: http://www.hltv.org/?pageid=173&playerid=&gameid=2

тогда будет картинка как у вас с курлом.

Попробуйте обычным file_get_contents тоже самое?

Sanu0074
На сайте с 31.08.2012
Offline
110
#10

LEOnidUKG, да, тоже самое

---------- Добавлено 30.10.2014 в 00:13 ----------

попробовал через прокси: http://www.php-proxy.net/index.php?q=aHR0cDovL3d3dy5obHR2Lm9yZy8%2FcGFnZWlkPTE3MyZwbGF5ZXJpZD03MTY3JmdhbWVpZD0y&hl=3ed

работает, но это вообще не вариант(

надо както нормальным путем получить...

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий