cURL: после перенаправления без фактического перенаправления - PullRequest
0 голосов
/ 11 февраля 2012

Хорошо, я практикую использование cURL для входа в различные веб-сервисы.Для этой конкретной попытки я делаю YouTube.Это было довольно серьезное испытание, но я наконец-то его получил ... почти.

После публикации ОГРОМНОГО количества тегов данных на странице входа в систему вы попадаете на чеккиды.Страница checkcookie подтверждает, что у вас есть нужные куки, а затем перенаправляет вас на youtube.com (вошел в вашу учетную запись). Вот что меня беспокоит.

Когда у меня это:* Я получаю источник страницы чекки.Он просто говорит «Документ перемещен».Это не то, что я хочу, я хочу, чтобы источник моего входа был сохранен в переменной.Поэтому я попробовал что-то еще ...

Когда я использую эту настройку:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

Я получаю сообщение на странице YouTube, и я вошел в систему!Кажется, работает!За исключением ... Я не хочу, чтобы меня перенаправили из моего сценария.Моя цель - получить доступ к источнику youtube.com, чтобы я вошел в систему.

Другими словами, cURL регистрируется просто отлично, проблема в том, что я буквально перенаправлен на YouTube.Что я не хочу.

Есть предложения?Как будто я должен следовать перенаправлениям ... но не перенаправляться.

Спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 15 февраля 2012

Похоже, вы перенаправлены, потому что вы повторяете curl_exec, в котором есть код JavaScript для перенаправления. Поскольку вы, вероятно, запрашиваете это у своего браузера, он запускает код и перенаправляет вас на YouTube. Если это так, то очевидным решением будет отключить JS или отфильтровать то, что вы повторяете себе

0 голосов
/ 11 февраля 2012

попробуйте это:

<?php
function getURL($url) {
    $curlHandle = curl_init(); // init curl
    curl_setopt($curlHandle, CURLOPT_URL, $url); // set the url to fetch
    curl_setopt($curlHandle, CURLOPT_HEADER, 0);
    curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curlHandle, CURLOPT_TIMEOUT,30);
    curl_setopt($curlHandle, CURLOPT_POST, 0);
    $content = curl_exec($curlHandle);
    curl_close($curlHandle);
    return $content;
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...