cURL で php スクリプトを使用して外部 Web ページにログインしようとしています。私は cURL を初めて使用するので、多くの部分が欠けているように感じます。いくつかの例を見つけて、https ページへのアクセスを許可するように変更しました。最終的に、私の目標は、ページにログインし、ログイン後に指定されたリンクをたどって .csv をダウンロードできるようにすることです。これまでのところ、ページへのログインをテストするスクリプトがあります。スクリプトを以下に示します。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.websiteurl.com/login');
curl_setopt($ch, CURLOPT_POSTFIELDS,'Email='.urlencode($login_email).'&Password='.urlencode($login_pass).'&submit=1');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");
curl_setopt($ch, CURLOPT_REFERER, "https://www.websiteurl.com/login");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$output = curl_exec($ch);
いくつかの質問を聞きたいんです。まず、これが自動的にリダイレクトされない理由はありますか? ページのコンテンツを表示する唯一の方法は、
echo $output
CURLOPT_RETURNTRANSFER と CURLOPT_FOLLOWLOCATION の両方が True に設定されていても。
次に、ページの URL は実際の Web サイトに誘導するのではなく、「localhost/folderName/test.php」のままです。なぜこれが起こるのか誰か説明できますか?スクリプトは実際にはログインしている Web ページにリダイレクトしないため、必要なことを何もできないようです。
私の問題は Cookie と関係がありますか? 私の cookies.txt ファイルは、.php スクリプトと同じフォルダーにあります。(ところでwampServerを使用しています)。他の場所に配置する必要がありますか?
これら 2 つの問題を修正できたら、.csv ファイルのダウンロード プロセスを開始するリンクにリダイレクトするだけでよいようです。
助けてくれてありがとう、どうもありがとう!