Extraction de données sur un site internet
IV L'application Php - architecture 1) fonctionnement de l'application L'application va récolter les informations en deux temps.
2) architecture de l'application L'application va s'articuler autour de deux fichiers : extraction1.php et extraction2.php qui vont respectivement exécuter les tâches 1) et 2) décrites dans le paragraphe précédent. Ces fichiers utiliseront deux bibliothèques : connect.php : définition de l'environnement. Utilisation de cURL ou des sockets Php, connexion éventuelle à la base MySQL. <?php Define("CONNEXION","curl"); //Define("CONNEXION","php"); Define("MYSQL",true); //Define("MYSQL",false); if (MYSQL) { $host="localhost"; $user="user_base"; $pwd="user_password"; $base="DVD"; $mysql_link = mysql_connect($host,$user,$pwd); mysql_select_db($base); } ?> lib.php : regroupe les fonctions appelées dans extraction1.php et extraction2.php. Par exemple, la fonction get_html() va regrouper les deux possibilités de connexion (cURL ou socket) en fonction des constantes définies dans connect.php <?php function get_html($url, $parametres=array()) { if (CONNEXION=="curl") { $params=''; if ($parametres['Referer']!="") $params.='-e '.$parametres['Referer']; if ($parametres['Proxy']!="") $params.='-x '.$parametres['Proxy']; if ($parametres['BrowserName']!="") $params.='-A "'.$parametres['BrowserName'].'"'; return (`curl $params $url`); } else { if (strtoupper(substr($url,0,7))=="HTTP://") $url=substr($url,7); $p = strpos($url,"/"); if ($p===FALSE) { $nom_domaine=$url; $get="/"; } else { $nom_domaine=substr($url,0,$p); $get=substr($url,$p); } $errno=""; $errstr=""; $r=""; $fp = fsockopen($nom_domaine, 80, &$errno, &$errstr, 15); if($fp) { socket_set_timeout($fp, 15); fputs($fp,"GET $get HTTP/1.1\r\n"); fputs($fp,"Host: $nom_domaine\r\n"); fputs($fp,"Connection: Close\r\n\r\n"); $r=""; while(!feof($fp)) { $r.=fgets($fp,1024); } fclose($fp); return($r); } return(''); } } ?>
|