Recherche par siren

This commit is contained in:
Michael RICOIS 2013-11-28 12:49:27 +00:00
parent af613793ee
commit 445290db96

View File

@ -1,7 +1,13 @@
<?php <?php
/** /**
* crontab * Crontab
* 0 9 * * 1-5 /var/www/batch/getAsso.php -c >> /var/www/log/getAsso.log * 0 9 * * 1-5 /var/www/batch/getAsso.php -c >> /var/www/log/getAsso.log
*
* Recherche
*
* Compte initial
* http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID=&JTY_WALDEC=&JTY_SIREN=776467102&JPA_D_D=&JPA_D_F=&rechercher.x=0&rechercher.y=0
*
*/ */
// Define path to application directory // Define path to application directory
@ -288,74 +294,86 @@ Sinon:
-f:JJ/MM/AAAA Date de fin de publication -f:JJ/MM/AAAA Date de fin de publication
-l Dernier JO Association uniquement (*) -l Dernier JO Association uniquement (*)
-c Dépôts des comptes uniquement -c Dépôts des comptes uniquement
-s:123456789 Recherche par siren
-n:X Intervalle MIN en secondes entre les requêtes sur le site des JO (défaut=$tempsMinEntreRequetes) -n:X Intervalle MIN en secondes entre les requêtes sur le site des JO (défaut=$tempsMinEntreRequetes)
-i:X \" MAX \" \" \" \" \" \" \" \" \" \" (défaut=$tempsMaxEntreRequetes) -i:X \" MAX \" \" \" \" \" \" \" \" \" \" (défaut=$tempsMaxEntreRequetes)
-v Vérifier que toutes les annonces du JO sont en base ! -v Vérifier que toutes les annonces du JO sont en base !
"; ";
$depotComptes=false; $depotComptes=false;
$siren = null;
$argv=$_SERVER['argv']; $argv=$_SERVER['argv'];
if ($_SERVER['argc']==1) $lastJO=true; if ($_SERVER['argc']==1) $lastJO=true;
else { else {
for ($i=1; isset($argv[$i]); $i++) { for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') { if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) { switch (substr($argv[$i],1,1)) {
case 'd': case 'd':
$dateDebut=substr($argv[$i],3,10); $dateDebut=substr($argv[$i],3,10);
$dateDeb=WDate::dateT('d/m/Y', 'Ymd', $dateDebut); $dateDeb=WDate::dateT('d/m/Y', 'Ymd', $dateDebut);
break; break;
case 'f': case 'f':
$dateFin=substr($argv[$i],3,10); $dateFin=substr($argv[$i],3,10);
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin); $dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
break; break;
case 'n': case 'n':
$tempsMinEntreRequetes=trim(substr($argv[$i],3))*1; $tempsMinEntreRequetes=trim(substr($argv[$i],3))*1;
if ($tempsMinEntreRequetes<0) $tempsMinEntreRequetes=0; if ($tempsMinEntreRequetes<0) $tempsMinEntreRequetes=0;
break; break;
case 'i': case 'i':
$tempsMaxEntreRequetes=trim(substr($argv[$i],3))*1; $tempsMaxEntreRequetes=trim(substr($argv[$i],3))*1;
if ($tempsMaxEntreRequetes<5) $tempsMaxEntreRequetes=2; if ($tempsMaxEntreRequetes<5) $tempsMaxEntreRequetes=2;
break; break;
case 'l': case 'l':
$lastJO=true; $lastJO=true;
break; break;
case 'v': case 'v':
$verif=true; $verif=true;
break; break;
case 'c': case 'c':
$depotComptes=true; $depotComptes=true;
break; break;
case '-': case 's':
die($strInfoProg); $siren = substr($argv[$i],3,9);
break; break;
default: die('Option '. $argv[$i] . " inconnue !\n"); case '-':
} die($strInfoProg);
} break;
} default: die('Option '. $argv[$i] . " inconnue !\n");
}
}
}
} }
if ($depotComptes) if ($depotComptes) {
$tabReg=array( 'ASSOCIATION%2FCOMPTE', $tabReg = array(
'FONDATION%2FCOMPTE', 'ASSOCIATION%2FCOMPTE',
'FONDS+DE+DOTATION%2FCOMPTE', 'FONDATION%2FCOMPTE',
'AUTRE%2FCOMPTE', 'FONDS+DE+DOTATION%2FCOMPTE',
); 'AUTRE%2FCOMPTE',
else );
$tabReg=array( 'ASSOCIATION%2FCREATION', } else {
'ASSOCIATION%2FMODIFICATION', $tabReg = array(
'ASSOCIATION%2FDISSOLUTION', 'ASSOCIATION%2FCREATION',
'ASL', 'ASSOCIATION%2FMODIFICATION',
'FONDATION', 'ASSOCIATION%2FDISSOLUTION',
'DECISION+JUSTICE', 'ASL',
'AUTRE', 'FONDATION',
'FONDS+DE+DOTATION', 'DECISION+JUSTICE',
); 'AUTRE',
'FONDS+DE+DOTATION',
);
}
$iDb=new WDB(); $iDb=new WDB();
$iInsee=new MInsee(); $iInsee=new MInsee();
$referer='http://www.journal-officiel.gouv.fr/association/'; $referer='http://www.journal-officiel.gouv.fr/association/';
/**
*
*/
if ($verif) { if ($verif) {
echo date('Y/m/d - H:i:s') ." - Comptage du nombre d'annonce présentes en base par date de parution...". EOL; echo date('Y/m/d - H:i:s') ." - Comptage du nombre d'annonce présentes en base par date de parution...". EOL;
$AnnDb=$iDb->select('asso', 'Date_Parution, count(*) as nb', '1 GROUP BY Date_Parution'); $AnnDb=$iDb->select('asso', 'Date_Parution, count(*) as nb', '1 GROUP BY Date_Parution');
@ -374,19 +392,22 @@ if ($verif) {
echo date('Y/m/d - H:i:s') ." - Parution du $parDate : $parNb annonces en base / $nbAnnonces annonces parues !". EOL; echo date('Y/m/d - H:i:s') ." - Parution du $parDate : $parNb annonces en base / $nbAnnonces annonces parues !". EOL;
elseif ($nbAnnonces==0) elseif ($nbAnnonces==0)
echo date('Y/m/d - H:i:s') ." - Parution du $parDate : $parNb annonces en base / Plus d'annonces sur le site JO.". EOL; echo date('Y/m/d - H:i:s') ." - Parution du $parDate : $parNb annonces en base / Plus d'annonces sur le site JO.". EOL;
//die(print_r($body));
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes); randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
//die();
} }
} }
exit;
die();
} }
/**
*
*/
if ($lastJO==true) { if ($lastJO==true) {
$strLast=' dernier'; $strLast=' dernier';
$strDates=''; $strDates='';
} }
/**
*
*/
else { else {
$strLast=''; $strLast='';
if ($depotComptes) { if ($depotComptes) {
@ -410,19 +431,30 @@ else {
$strDates=" du $dateDebut au $dateFin"; $strDates=" du $dateDebut au $dateFin";
$dateCour=$dateDeb; $dateCour=$dateDeb;
} }
echo date('Y/m/d - H:i:s') ." - DEBUT du la récupération du$strLast JO Association$strDates".EOL; echo date('Y/m/d - H:i:s') ." - DEBUT du la récupération du$strLast JO Association$strDates".EOL;
echo date('Y/m/d - H:i:s') .' - La durée maximum entre chaque requête est de '. $tempsMaxEntreRequetes .' secondes.'. EOL; echo date('Y/m/d - H:i:s') .' - La durée maximum entre chaque requête est de '. $tempsMaxEntreRequetes .' secondes.'. EOL;
$message = ''; $message = '';
while ($dateCour<=$dateF || $lastJO) { // Boucle sur les dates // Boucle sur les dates
//echo date ('Y/m/d - H:i:s') ." - dateCour($dateCour) <= dateF($dateF) OU lastJO($lastJO)=true". $eol; while ($dateCour<=$dateF || $lastJO)
for ($i_reg=0; isset($tabReg[$i_reg]) || $lastJO; $i_reg++) { // Boucle sur les régions {
// Boucle sur les régions
if ($lastJO==true) { // Cas récup dernier JO for ($i_reg=0; isset($tabReg[$i_reg]) || $lastJO; $i_reg++)
{
// Recherche par siren
if ($siren !== null) {
$url = 'http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID='.$region.'&JTY_WALDEC=&JTY_SIREN='.$siren.'&JPA_D_D=&JPA_D_F=&rechercher.x='.rand(1,68).'&rechercher.y='.rand(1,16).'&rechercher=Rechercher';
// Cas récup dernier JO
} elseif ($lastJO==true) {
$region=''; $region='';
$reg5=substr($region,0,5);
$url='http://www.journal-officiel.gouv.fr/association/index.php?ACTION=showLast'; $url='http://www.journal-officiel.gouv.fr/association/index.php?ACTION=showLast';
} else { // On est pas dans la récupération du JO Assoc Jiur }
// On est pas dans la récupération du JO Assoc Jiur
else {
$region=$tabReg[$i_reg]; $region=$tabReg[$i_reg];
$reg5=substr($region,0,5); $reg5=substr($region,0,5);
$dateFmt=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',$dateCour)); $dateFmt=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',$dateCour));
@ -430,11 +462,11 @@ while ($dateCour<=$dateF || $lastJO) { // Boucle sur les dates
$dateFmt2=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',getNextDate($dateCour,0))); $dateFmt2=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',getNextDate($dateCour,0)));
else else
$dateFmt2=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',getNextDate($dateCour))); $dateFmt2=str_replace('/', '%2F', WDate::dateT('Ymd', 'd/m/Y',getNextDate($dateCour)));
//$url='http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID='.urlencode($tabReg[$i_reg]).'&JAN_LIEU_DECL=&JTY_ID=&JTY_WALDEC=&JPA_D_D='. $dateFmt .'&JPA_D_F='. $dateFmt2;//&rechercher.x=44&rechercher.y=6&rechercher=Rechercher
$url='http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID='.$region.'&JTY_WALDEC=&JTY_SIREN=&JPA_D_D='. $dateFmt .'&JPA_D_F='. $dateFmt2.'&rechercher.x='.rand(1,68).'&rechercher.y='.rand(1,16).'&rechercher=Rechercher'; $url='http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID='.$region.'&JTY_WALDEC=&JTY_SIREN=&JPA_D_D='. $dateFmt .'&JPA_D_F='. $dateFmt2.'&rechercher.x='.rand(1,68).'&rechercher.y='.rand(1,16).'&rechercher=Rechercher';
// http://www.journal-officiel.gouv.fr/association/index.php?ACTION=Rechercher&HI_PAGE=1&HI_COMPTEUR=0&original_method=get&WHAT=&JTH_ID=&JAN_BD_CP=&JRE_ID=&JAN_LIEU_DECL=&JTY_ID=ASSOCIATION%2FCOMPT&JTY_WALDEC=&JTY_SIREN=&JPA_D_D=01%2F01%2F1990&JPA_D_F=31%2F12%2F2009&rechercher.x=40&rechercher.y=9&rechercher=Rechercher
$strLast=''; $strLast='';
} }
$page=getUrl($url, '', '', $referer, false, 'www.journal-officiel.gouv.fr'); $page=getUrl($url, '', '', $referer, false, 'www.journal-officiel.gouv.fr');
$body=$page['body']; $body=$page['body'];
//die(print_r($body)); //die(print_r($body));