PHPのcURLでCookieを保存しつつ別のページにアクセス
PHPのcURLで特定サイトにアクセスしてcookieを取得した後に、同じドメインの別なページにcookieを保持したままアクセスする必要性があったので、サンプルコードを書きました。ユーザーエージェントがランダム選択なのは利用上の必要性です。cURLのオプションの書き方とか2個別々とかではなく、もっとスマートに書けたかもしれません(急いで書いたので適当です)。
[php] ‘http://*****.net/aaa/’,CURLOPT_HEADER => true,
CURLOPT_VERBOSE => true,
CURLOPT_COOKIESESSION => true,
CURLOPT_COOKIEFILE => ‘./cookie.txt’,
CURLOPT_COOKIEJAR => ‘./cookie.txt’,
CURLOPT_USERAGENT => $userAgents[rand(0, count($userAgents)
– 1)],
CURLOPT_ENCODING => ”,
                                 CURLOPT_FOLLOWLOCATION => 1,
                                 CURLOPT_RETURNTRANSFER => true,
                                 CURLOPT_HTTPHEADER     => array(‘Expect:’)
                                        ); 
CURLOPT_FOLLOWLOCATION =/\>/ 1,
CURLOPT_RETURNTRANSFER =/\>/ true,
CURLOPT_HTTPHEADER =/\>/ array(‘Expect:’)
);
$options2 = array(CURLOPT_URL =/\>/ ‘http://*****.net/bbb/’,
                                 CURLOPT_HEADER => true,
                                 CURLOPT_VERBOSE => true,
                                 CURLOPT_COOKIESESSION => true,
                                 CURLOPT_COOKIEFILE => ‘./cookie.txt’,
                                 CURLOPT_COOKIEJAR => ‘./cookie.txt’,
                                 CURLOPT_USERAGENT      => $userAgents[rand(0, count($userAgents)
– 1)],
                                 CURLOPT_ENCODING       => ”,
                                CURLOPT_RETURNTRANSFER =>true,
                                CURLOPT_HEADER => true,
                                 CURLOPT_FOLLOWLOCATION => 1,
                                 CURLOPT_RETURNTRANSFER => true,
                                 CURLOPT_HTTPHEADER     => array(‘Expect:’)
                                        );
);
$curl = curl_init();
curl_setopt_array($curl, $options);
$result = curl_exec($curl);
curl_setopt_array($curl, $options2);
$result = curl_exec($curl);
curl_close($curl);
?>
[/php]いちおうこれで、cookieを使って2番めのURLにアクセスできました。


