好吧我正在练习使用cURL登录不同的网络服务。对于这个特殊的尝试,我正在做YouTube。这是一个相当大的挑战,但我终于得到了......差不多。
将大量的帖子数据标签发布到登录页面后,您会收到checkCookie类似的东西。 checkcookie页面验证您是否拥有正确的cookie,然后将您重定向到youtube.com(登录到您的帐户)这就是搞砸了我。
当我有这个:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
我得到了checkcookie页面的来源。它简单地说“文件移动”。这不是我想要的,我希望将我登录的源存储到变量中。所以我尝试了其他的东西......
当我使用此设置时:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
我被发送到youtube页面,我已登录!它似乎工作!除了...我不想被重定向到我的脚本。我的目标是在登录后获取youtube.com的来源。
换句话说,cURL正好登录,问题是我真的被重定向到YouTube。我不想要的。
有什么建议吗?这就像我需要遵循重定向......但不能重定向。
感谢您的帮助!
答案 0 :(得分:0)
试试这个:
<?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;
}
?>
答案 1 :(得分:0)
您似乎正在重定向,因为您回显了curl_exec
,其中有一个用于重定向的JavaScript代码。由于您可能是从浏览器请求,因此它会运行代码并将您重定向到YouTube。如果是这种情况,那么显而易见的解决办法就是关闭JS或过滤你回应自己的内容