curl在一个有密码的站点中执行多个操作


curl for multiple operations in a passworded site

我正在使用curl登录tumblr进行一些操作。我不使用tumblrAPI,因为还有其他一些限制。

如提及其他一些职位。我使用curl_init,然后使用多个curl_exec并关闭。但它似乎不起作用$结果1显示我已成功登录。但是$result2是空的。

   $request_data = http_build_query(
    array(
        'email'     => $tumblr_email,
        'password'  => $tumblr_password,
    )
);

$c1 = curl_init('http://www.tumblr.com/login');
curl_setopt($c1, CURLOPT_POST, true);
curl_setopt($c1, CURLOPT_POSTFIELDS, $request_data);
curl_setopt($c1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c1, CURL_COOKIEFILE, '');  
$result1 = curl_exec($c1);
curl_setopt($c1, CURLOPT_URL, 'http://www.tumblr.com/likes/page/2');
$result2 = curl_exec($c1);
curl_close($c1);
$request_data = http_build_query(
    array(
        'email'     => $tumblr_email,
        'password'  => $tumblr_password,
    )
);

$c1 = curl_init('http://www.tumblr.com/login');
curl_setopt($c1, CURLOPT_POST, true);
curl_setopt($c1, CURLOPT_POSTFIELDS, $request_data);
curl_setopt($c1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c1, CURL_COOKIEFILE, 'somefilename1.txt');  
curl_setopt($c1,CURLOPT_COOKIEJAR, 'somefilename1.txt');  
curl_setopt($c1,CURLOPT_FRESH_CONNECT,true);//No caching
curl_setopt($c1,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($c1,CURLOPT_MAXREDIRS,1);
$result1 = curl_exec($c1);
curl_setopt($c1, CURLOPT_URL, 'http://www.tumblr.com/likes/page/2');
curl_setopt($c1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c1, CURL_COOKIEFILE, 'somefilename1.txt');  
curl_setopt($c1,CURLOPT_COOKIEJAR, 'somefilename1.txt');  
curl_setopt($c1,CURLOPT_FRESH_CONNECT,true);//No caching
curl_setopt($c1,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($c1,CURLOPT_MAXREDIRS,1);
$result2 = curl_exec($c1);
curl_close($c1);

检查一下,它会起作用的,实际上你应该指定一些文件名来存储网站上的cookie,它可能用于一些身份验证