Задать вопрос

Как получить страницу сURLом после предвартиельного посещения другой страницы?

Здравствуйте.
Хочу cURLом в образовательных целях скачать страницу.
Это страница с телепрограммой (печатная версия - www.vsetv.com/schedule_printversion_withdesc.html).

Проблема в том, что у страницы этой один url для всех каналов, а получить я хочу телепрограмму для НТВ (www.vsetv.com/schedule_channel_10_week.html).
Чтобы на страницы "Печатной версии" показывалась программа именно для НТВ, нжуно сначала зайти на страницу канеала (www.vsetv.com/schedule_channel_10_week.html), а уже потом на страницу печатной версии - www.vsetv.com/schedule_printversion_withdesc.html.

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

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

Но, если я с этой же кукой захожу на полную страницу другого канала никаких измений на странице печатной версии не происходит. Как будто я упускаю что-то важное кроме куки.

Мой код (пожалуйста, не судите строго, это хобби, а не профессия):

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.vsetv.com/schedule_channel_10_week.html');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");


$headers = array();
$headers[] = "Host: www.vsetv.com";
$headers[] = "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0";
$headers[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$headers[] = "Accept-Encoding: gzip, deflate";
$headers[] = "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3";
$headers[] = "Cookie: PHPSESSID=ea26de022f1029ffec0a95cd56038bd2";
$headers[] = "Connection: keep-alive";
$headers[] = "Upgrade-Insecure-Requests: 1";
$headers[] = "Cache-Control: max-age=0";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$content = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
unset($ch);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.vsetv.com/schedule_printversion_withdesc.html');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");


$headers = array();
$headers[] = "Host: www.vsetv.com";
$headers[] = "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0";
$headers[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$headers[] = "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3";
$headers[] = "Cookie: PHPSESSID=ea26de022f1029ffec0a95cd56038bd2";
$headers[] = "Connection: keep-alive";
$headers[] = "Upgrade-Insecure-Requests: 1";
$headers[] = "Cache-Control: max-age=0";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$content2 = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
unset($ch);


Если что-то непонятно, пожалуйста, напишите, постраюсь уточнить.
Что я упускаю, в чем может быть дело?
  • Вопрос задан
  • 266 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
DevMan
@DevMan
use cookies right luke: CURLOPT_COOKIEJAR и CURLOPT_COOKIEFILE .
www.electrictoolbox.com/php-curl-cookies
google -> php curl cookies
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы