extranet/scripts/jobs/getMarque.php

171 lines
7.4 KiB
PHP
Raw Normal View History

<?php
/**
* Marque
*/
if ($argc != 2){
echo $argv[0].' numero';
echo "\n";
exit;
}
$numero = strtoupper($argv[1]);
function getPage($url, $curl_data = '', $verbose=false)
{
global $ckfile;
//$user_agent = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';
//$user_agent = 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)';
$user_agent = 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)';
$post = false;
$fields = '';
if (is_array($curl_data) && count($curl_data)>0) {
foreach($curl_data as $key=>$value) {
$fields .= $key.'='.$value.'&';
}
rtrim($fields,'&');
$post = true;
}
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_USERAGENT => $user_agent, // who am i
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
CURLOPT_POST => $post, // i am sending post data
CURLOPT_POSTFIELDS => $fields, // this are my post vars
CURLOPT_SSL_VERIFYHOST => 0, // don't verify ssl
CURLOPT_SSL_VERIFYPEER => false, //
CURLOPT_VERBOSE => $verbose , //
//CURLOPT_COOKIESESSION => true,
CURLOPT_COOKIEFILE => $ckfile,
CURLOPT_COOKIEJAR => $ckfile, // Stockage du cookie de session
);
$ch = curl_init($url);
curl_setopt_array($ch,$options);
$content = curl_exec($ch);
$err = curl_errno($ch);
$errmsg = curl_error($ch) ;
$header = curl_getinfo($ch);
curl_close($ch);
// $header['errno'] = $err;
// $header['errmsg'] = $errmsg;
// $header['content'] = $content;
return array('header'=>$header, 'content'=>$content);
}
//==> Start
$debug = false;
$config = parse_ini_file(dirname(__FILE__).'/../../application/configs/application.ini', true);
2013-01-24 09:43:36 +00:00
$directory = $config['production']['profil.path.data'].'/marques/';
if ( !file_exists($directory) ) {
echo "Erreur : Répertoire inexistant.\n";
exit;
}
/*
Recherche
http://bases-marques.inpi.fr/Typo3_INPI_Marques/marques_resultats_liste.html
baseFr=on&baseCommu=on&baseInter=on&numero=3954670&rechercher=Rechercher&recherche=recherche
Liste des résultats (utilise des sessions)
<div class="fiche">
<ul>
<li class="couleur"><div>Notice compl&egrave;te</div></li>
<li class="gris"><div><a target="_blank" href="Typo3_INPI_Marques/getPdf?idObjet=3954670_201245_fmark">Copie de la marque au BOPI</a></div></li>
</ul>
Thumb
http://bases-marques.inpi.fr/Typo3_INPI_Marques/getFirstThumb?idObjet=3954670_201245_fmark
Affichage du résultat (le premier)
http://bases-marques.inpi.fr/Typo3_INPI_Marques/marques_fiche_resultats.html?index=1
Récupération de la notice complète
<?xml version="1.0" encoding="UTF-8"?>
<div><p><strong>Marque</strong> :
207 +</p><p><strong>Classification de Nice</strong> :
12
</p><p><strong>Produits et services</strong></p><p><ul><li><span>12
Véhicules, appareils de locomotion par terre, véhicules automobiles, leurs éléments constitutifs, à savoir amortisseurs de suspension pour véhicules ; amortisseurs (ressorts) pour véhicules ; moteurs pour véhicules terrestres ; boîtes de vitesses pour véhicules terrestres ; châssis de véhicules ; carrosseries ; arbres de transmission pour véhicules terrestres ; circuits hydrauliques pour véhicules ; convertisseurs de couple pour véhicules terrestres ; embrayages ; essieux ; freins de véhicules ; roues de véhicules ; jantes de roues de véhicules ; enjoliveurs de roues ; moyeux de roues de véhicules ; pneumatiques ; volants ; sièges de véhicules ; appuie-tête pour sièges de véhicules ; dispositifs de sécurité pour véhicules tels que ceintures de sécurité et coussins d'air gonflants ; rétroviseurs ; essuie-glace ; barres de torsion ; pare-chocs ; baguettes de protection ; déflecteurs ; becquets ; pare-brise ; toits-ouvrants ; vitres de véhicules ; bouchons pour réservoir ; porte-bagages de véhicules.</span></li></ul></p><p><strong>Déposant</strong> :
AUTOMOBILES PEUGEOT, société anonyme, 75 Avenue de la Grande Armée, 75116, Paris, FR (SIREN 552144503)</p><p><strong>Mandataire</strong> :
PEUGEOT, SA, 75 Avenue de la Grande Armée, Case courrier : GA 003, 75116, Paris, FR</p><p xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:java="http://xml.apache.org/xslt/java" xmlns:cal="java.util.Calendar" xmlns:sf="java.text.SimpleDateFormat"><strong>Numéro</strong> : 3954670</p><p xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:java="http://xml.apache.org/xslt/java" xmlns:cal="java.util.Calendar" xmlns:sf="java.text.SimpleDateFormat"><strong>Statut</strong> : Demande publiée</p><p xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:java="http://xml.apache.org/xslt/java" xmlns:cal="java.util.Calendar" xmlns:sf="java.text.SimpleDateFormat"><strong>Date de dépôt / Enregistrement</strong> : 2012-10-19</p><p xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:java="http://xml.apache.org/xslt/java" xmlns:cal="java.util.Calendar" xmlns:sf="java.text.SimpleDateFormat"><strong>Lieu de dépôt</strong> : Dépôt Electronique Paris</p><p><strong>Historique</strong></p><p><ul><li>Publication
2012-11-09
(BOPI 2012-45)</li></ul></p></div>
Image
<div class="images"><p><u><strong>Marque française</strong></u></p><img src='Typo3_INPI_Marques/getImg?doc=3954670_201245_fmark&pos=001' alt='' class='null'/></div>
2013-02-05 16:32:10 +00:00
Pour les images, récupérer le type de l'image dans
Content-Type image/jpeg;charset=UTF-8
Texte
<div class="images">...</div><div>(Texte html a recup)</div><p class="right">...</p>
Récupération du PDF
http://bases-marques.inpi.fr/Typo3_INPI_Marques/getPdf?idObjet=3954670_201245_fmark
*/
//Define cookie file for storage
$ckfile = dirname(__FILE__).'/'.uniqid('cookies-');
$site = 'http://bases-marques.inpi.fr';
//Recherche par numéro de marque
echo $url = $site.'/Typo3_INPI_Marques/marques_recherche_numero.html';
echo "\n";
$result = getPage($url);
if ($debug) file_put_contents('page1.html', $result['content']);
//Soumission du formulaire
echo $url = $site."/Typo3_INPI_Marques/marques_resultats_liste.html";
echo "\n";
$data = array(
'baseFr'=>'on',
'baseCommu'=>'on',
'baseInter'=>'on',
'numero'=>$numero,
'rechercher'=>'Rechercher',
'recherche'=>'recherche',
);
$result = getPage($url, $data);
if ($debug) file_put_contents('page2.html', $result['content']);
//Affichage de l'annonce
echo $url = $site.'/Typo3_INPI_Marques/marques_fiche_resultats.html?index=1';
echo "\n";
$result = getPage($url);
if ($debug) file_put_contents('page3.html', $result['content']);
2013-02-05 16:43:00 +00:00
preg_match('/href="Typo3_INPI_Marques\/getPdf\?idObjet=(.*)">Copie de la marque au BOPI\<\/a\>/',
$result['content'], $matches);
echo $url = $site.'/Typo3_INPI_Marques/getPdf?idObjet='.$matches[1];
echo "\n";
if (empty($matches[1])) {
2013-02-07 15:08:39 +00:00
echo "Erreur matching idObjet.";
echo "\n";
exit;
}
//Téléchargement du PDF
$result = getPage($url);
if (substr($result['content'],0,4)!='%PDF'){
if ($debug) file_put_contents('page4.html', $result['content']);
echo "Erreur téléchargement du PDF.";
echo "\n";
exit;
}
2013-02-05 16:32:10 +00:00
file_put_contents($directory."/".$numero.".pdf", $result['content']);
echo "\n";
if (file_exists($ckfile)) unlink($ckfile);