ウェブサイトからデータを取得しようとしていますが、このデータは署名されたユーザーのみが利用できますが、CURLを使用してログインすることはできません。それはCAPTCHAを使用するので、署名されたユーザーだけに許可されているページにCURLがアクセスできるようにするために、私がブラウザにサインアップして生成したCookieを使用しようとしています。PHP CurlでブラウザのCookieを使用してウェブサイトにログイン
これで、ブラウザを使用してcookie.txtファイルにログインしたときに、このウェブサイトが生成したすべてのCookieをコピーしたとします。 私は2つの質問があります:
cookie.txtにどのような形式で保存する必要がありますか?
CURLでこれらのクッキーをロードして使用するにはどうすればよいですか?
$curl = curl_init();
//load cookies from cookie.txt code
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,10);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_USERAGENT, $userAgent);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curl, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$contents = curl_exec($curl);
curl_close($curl);
echo $contents;
編集1
$url="https://google.com";
$curl = curl_init();
curl_setopt($curl, CURLOPT_COOKIEJAR, '/Testing/cookie.txt');
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,10);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_USERAGENT, $userAgent);/
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curl, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$contents = curl_exec($curl);
curl_close($curl);
echo $contents;
は、クッキーファイルの例を取得するために上記のコードを試してみましたが、cookie.txtを空のままのように思えます。
編集2
は私が__DIR__."/cookie.txt"
に'/Testing/cookie.txt'
のパスを変更し、ファイル内に生成されたクッキーは、私はそれらを修正し、COOKIEFILEを使用して、それが動作するかどうかを確認しようとします。 3
編集は、以下にその答えを踏襲し、意図したとおりにそれが働きました。
私は自分の投稿を更新しました。 –