私はインターネットを通じていくつかの広告を投稿し、すべてのアカウント (メールボックスなど) をチェックするための cURL テクニックを学びました。
問題は、一部の Web サイトでスクリプトが機能することです。Cookie が作成され、テキストが取得されます。
しかし、これは接続されていません!Cookie を開くと、「false」とマークされ、取得されたテキストはオフライン バージョンです。知りたいのですが、この種の Web サイトに接続するためにアーカイブするにはどうすればよいですか?
私のコード:
<?php
//connexion via page de login
$username="xxxx";
$password="passxxxx";
$url="http://www.garder-mes-enfants.fr/";
$cookie="cookie.txt";
$postdata = "username=".$username."&passwd=".$password;
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url . "index.php?option=com_user&Itemid=305&lang=fr");
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url . "index.php");
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
//fin de connexion, on ne ferme pas la curl en cour pour l'utiliser après
//récupération du code source de la page dans un fichier texte pour traiter les informations via php
curl_setopt($ch, CURLOPT_URL, $url."nounou/SURESNES/115043-assistante-maternelle-agreee-cherche-3-petits-bouts-de-chou.html");
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url . "S-identifier.html");
$ret = curl_exec($ch);
if ($ret === FALSE) {
die(curl_error());
}
$nom_local="test.txt";
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
if ($nom_local) {
$fp = fopen($nom_local, 'w') or die("Le fichier '$nom_local' n'a pu être ouvert en écriture");
curl_setopt($ch, CURLOPT_FILE, $fp);
} else {
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
}
$ret = curl_exec($ch);
if ($nom_local) {
fclose($fp);
}
curl_close($ch);
if ($ret === FALSE) {
die("Une erreur a été rencontrée : " . curl_error());
}
echo $ret;