Помогите: не выходит получить код содержимого страницы

aprika
На сайте с 05.06.2006
Offline
144
659

При попытке парсинга некоторых страниц с помощию CURL вместо содержимого страницы отдается что-то типа:


<html>
<head>
<script>
var expire = new Date();
expire.setTime(expire.getTime() + 3600000 * 24);
document.cookie = 'check=' + escape('3e67ccc34d7e318f1d03fb3e469e5eba') + ';expires=' + expire.toGMTString() + ';path=/';
// document.location.href = document.location.href;
document.location.reload(false);
</script>
</head>
</html>

Подскажите, пожалуйста, как сформировать реальный URL и получить нужный код страницы?

(◕‿◕)
C
На сайте с 20.09.2007
Offline
114
#1
как сформировать реальный URL и получить нужный код страницы?

Перед отдачей - они читают куку. Если ее нет - выводят такой код.

Куки у них пишутся JS.

Соответственно - запрашивая страницу - надо передавать куку.

Зайдите на страницу браузером, потом смотрите значение куки и, соответственно, это и передавайте курлом.

p.s. curl_setopt($ch, CURLOPT_COOKIE, $переменная);

где $переменная - в виде: кука1=значение1;кука2=значение2; и т.п.

ИМХО, самые лучшие VDS: https://cp.inferno.name/aff.php?aff=4048
aprika
На сайте с 05.06.2006
Offline
144
#2

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

Не могли бы вы дать более точные подсказки, если можно, с куском кода?

C
На сайте с 20.09.2007
Offline
114
#3
Не могли бы вы дать более точные подсказки, если можно, с куском кода?

Я все подсказки дал выше.

Куки получать и передавать пробовала

Вы, возможно, куки получали curl-ом и потом их также и отдавали. Но так не получится, потому что кука у них пишется JS. Поэтому:

Зайдите на страницу браузером, потом смотрите значение куки и, соответственно, это и передавайте курлом.
p.s. curl_setopt($ch, CURLOPT_COOKIE, $переменная);
где $переменная - в виде: кука1=значение1;кука2=значение2; и т.п.
aprika
На сайте с 05.06.2006
Offline
144
#4

Куки, разумеется, брались из JS регуляркой или substr и передавались CURL_COOKIE, но безрезультатно. А в каком формате expires передавать? Или, может быть, собака зарыта в том, что надо одновременно передавать и куки, полученные CURL'ом, но как это сделать?

T5
На сайте с 06.07.2006
Offline
100
tw5
#5
aprika:
с куском кода?


$user_agent = '';
$cookie = '';
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, 'http://domain/');
curl_setopt($ch, CURLOPT_POSTFIELDS, 'http://domain/');
$answer = curl_exec($ch);
$code = substr($answer, strpos($answer, "escape('")+8, 32);
$cookie = 'check=' . $code;
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_setopt($ch, CURLOPT_URL, 'http://domain/');
$answer = curl_exec($ch);
curl_close($ch);
aprika:
А в каком формате expires передавать??

date("D, d M Y H:i:s",time()+3600000 * 24)." GMT";

Но если не требуется указывать срок годности куков, его можно вообще не передавать.

Wservices.ru - регистрация доменов, сервисы (http://wservices.ru) wb0.ru - анализ сайтов и страниц, утилиты для вебмастера (http://wb0.ru)
aprika
На сайте с 05.06.2006
Offline
144
#6

Yes ☝

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