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
/**
* crontab
* Crontab
* 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
@ -288,74 +294,86 @@ Sinon:
-f:JJ/MM/AAAA Date de fin de publication
-l Dernier JO Association 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)
-i:X \" MAX \" \" \" \" \" \" \" \" \" \" (défaut=$tempsMaxEntreRequetes)
-v Vérifier que toutes les annonces du JO sont en base !
";
$depotComptes=false;
$siren = null;
$argv=$_SERVER['argv'];
if ($_SERVER['argc']==1) $lastJO=true;
else {
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'd':
$dateDebut=substr($argv[$i],3,10);
$dateDeb=WDate::dateT('d/m/Y', 'Ymd', $dateDebut);
break;
case 'f':
$dateFin=substr($argv[$i],3,10);
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
break;
case 'n':
$tempsMinEntreRequetes=trim(substr($argv[$i],3))*1;
if ($tempsMinEntreRequetes<0) $tempsMinEntreRequetes=0;
break;
case 'i':
$tempsMaxEntreRequetes=trim(substr($argv[$i],3))*1;
if ($tempsMaxEntreRequetes<5) $tempsMaxEntreRequetes=2;
break;
case 'l':
$lastJO=true;
break;
case 'v':
$verif=true;
break;
case 'c':
$depotComptes=true;
break;
case '-':
die($strInfoProg);
break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
}
}
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'd':
$dateDebut=substr($argv[$i],3,10);
$dateDeb=WDate::dateT('d/m/Y', 'Ymd', $dateDebut);
break;
case 'f':
$dateFin=substr($argv[$i],3,10);
$dateF=WDate::dateT('d/m/Y', 'Ymd', $dateFin);
break;
case 'n':
$tempsMinEntreRequetes=trim(substr($argv[$i],3))*1;
if ($tempsMinEntreRequetes<0) $tempsMinEntreRequetes=0;
break;
case 'i':
$tempsMaxEntreRequetes=trim(substr($argv[$i],3))*1;
if ($tempsMaxEntreRequetes<5) $tempsMaxEntreRequetes=2;
break;
case 'l':
$lastJO=true;
break;
case 'v':
$verif=true;
break;
case 'c':
$depotComptes=true;
break;
case 's':
$siren = substr($argv[$i],3,9);
break;
case '-':
die($strInfoProg);
break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
}
}
}
if ($depotComptes)
$tabReg=array( 'ASSOCIATION%2FCOMPTE',
'FONDATION%2FCOMPTE',
'FONDS+DE+DOTATION%2FCOMPTE',
'AUTRE%2FCOMPTE',
);
else
$tabReg=array( 'ASSOCIATION%2FCREATION',
'ASSOCIATION%2FMODIFICATION',
'ASSOCIATION%2FDISSOLUTION',
'ASL',
'FONDATION',
'DECISION+JUSTICE',
'AUTRE',
'FONDS+DE+DOTATION',
);
if ($depotComptes) {
$tabReg = array(
'ASSOCIATION%2FCOMPTE',
'FONDATION%2FCOMPTE',
'FONDS+DE+DOTATION%2FCOMPTE',
'AUTRE%2FCOMPTE',
);
} else {
$tabReg = array(
'ASSOCIATION%2FCREATION',
'ASSOCIATION%2FMODIFICATION',
'ASSOCIATION%2FDISSOLUTION',
'ASL',
'FONDATION',
'DECISION+JUSTICE',
'AUTRE',
'FONDS+DE+DOTATION',
);
}
$iDb=new WDB();
$iInsee=new MInsee();
$referer='http://www.journal-officiel.gouv.fr/association/';
/**
*
*/
if ($verif) {
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');
@ -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;
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;
//die(print_r($body));
randsleep($tempsMinEntreRequetes, $tempsMaxEntreRequetes);
//die();
}
}
die();
exit;
}
/**
*
*/
if ($lastJO==true) {
$strLast=' dernier';
$strDates='';
}
/**
*
*/
else {
$strLast='';
if ($depotComptes) {
@ -410,19 +431,30 @@ else {
$strDates=" du $dateDebut au $dateFin";
$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') .' - La durée maximum entre chaque requête est de '. $tempsMaxEntreRequetes .' secondes.'. EOL;
$message = '';
while ($dateCour<=$dateF || $lastJO) { // Boucle sur les dates
//echo date ('Y/m/d - H:i:s') ." - dateCour($dateCour) <= dateF($dateF) OU lastJO($lastJO)=true". $eol;
for ($i_reg=0; isset($tabReg[$i_reg]) || $lastJO; $i_reg++) { // Boucle sur les régions
if ($lastJO==true) { // Cas récup dernier JO
// Boucle sur les dates
while ($dateCour<=$dateF || $lastJO)
{
// Boucle sur les régions
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='';
$reg5=substr($region,0,5);
$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];
$reg5=substr($region,0,5);
$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)));
else
$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';
// 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
$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';
$strLast='';
}
$page=getUrl($url, '', '', $referer, false, 'www.journal-officiel.gouv.fr');
$body=$page['body'];
//die(print_r($body));