171 lines
7.4 KiB
PHP
171 lines
7.4 KiB
PHP
<?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);
|
|
$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è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>
|
|
|
|
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']);
|
|
|
|
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])) {
|
|
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;
|
|
}
|
|
file_put_contents($directory."/".$numero.".pdf", $result['content']);
|
|
echo "\n";
|
|
if (file_exists($ckfile)) unlink($ckfile); |