Etape 1 - identifier le schéma

dans un premier temps, nous devons identifier la partie codée en HTML qui contient nos informations. Vous pouvez voir sur le dessins les informations que nous souhaitons récupérer depuis la source délectionnée (marquée par une flèche rouge).

La principale nouvelle est surlignée dans le code source:

<div style="background-color: #EAEFF4;"> <div class="cnnMainT1Hd"><h2><a href="/2004/ALLPOLITICS/12/20/bush.ap/index.html" style="color:#000;"> Bush veut réduire le déficit</a></h2></div><div style="background-color:#fff;"><img src="http://i.cnn.net/cnn/img/1.gif" alt="" width="1" height="10"></div> <!-- REAP --><a href="/2004/ALLPOLITICS/12/20/bush.ap/index.html"><img src="http://i.a.cnn.net/cnn/2004/ALLPOLITICS/12/20/bush.ap/top.bush.flag.ap.jpg"width="280" height="210" alt="Bush looks to slash deficit" border="0" hspace="0" vspace="0"></a><!-- PURGE: /2004/ALLPOLITICS/12/20/bush.ap/top.bush.flag.ap.jpg --><!-- KEEP --><!-- /REAP --><div class="cnnMainT1"><p> Le Président Bush a aujourd'hui couvert quelques problèmes lors de la conférence de Presse à Washington. Bush a dit:<li> qu'il soumettrait un budget qui coupe le déficit en deux en maintenant une discipline stricte en matière de dépense </li><li> Les électrions en Irak en Janvier " sont le début d'un processus, et il est important que les Américains comprennent cela" </li><li> Le Secrétaire à la Défence Donald Rumsfeld "fait un excellent boulot" </li></p><p><a href="/2004/ALLPOLITICS/12/20/bush.ap/index.html" class="cnnt1link">FULL STORY</a></p><p> <b><span class="cnnBodyText" style="font-weight:bold;color:#333;">Video: </span><img src="http://i.cnn.net/cnn/.element/img/1.0/misc/premium.gif" alt="premium content" width="9" height="11" hspace="0" vspace="0" border="0" align="absmiddle"></b> <a href="javascript:LaunchVideo('/politics/2004/12/20/sot.bush.domestic.agenda.cnn.','300k');">Bush sets out economic agenda</a><br> <b><span class="cnnBodyText" style="font-weight:bold;">CNN/Money: </span></b> <a href="/money/2004/12/20/retirement/bush_pressconf/index.htm">Social security questions</a><br> <b>Transcript:</b> <a href="/2004/ALLPOLITICS/12/20/bush.transcript.ap/index.html">Bush news conference</a><br> <b><span class="cnnBodyText" style="font-weight:bold;color:#333;">Special Report: </span></b> <a href="/SPECIALS/2004/bush.term/">Bush: The Second Term</a><br></p></div></div>

Nous voulons utiliser que le Titre de la nouvelle principale et le petit texte situé sous l'image.
Comme vous le voyez, ce dernier est encadré de tags <div class="cnnMainT1Hd"></div> et le texte est contenu entre les tags <div class="cnnMainT1"></div>

Etape 2 - première version du script

Maintenant, nous allons pouvoir commencer le script. Dans un premier temps, nous allons devoir télécharger le contenu de la page principale de www.cnn.com

#main section of script
<Section>
    #define name of section
    Name ourMainSection


    # Load content
    <Action ContentURL>

        #load content from the following URL
        URL http://www.cnn.com
        
        #removes newlines from downloaded content for easier matching 
        RemoveNewLine
    </Action>

</Section>

#run section with name “ourMainSection”
Main ourMainSection

Chaque script contient la saction principale qui télécharge la page depuis l'URL indiquée, puis réalise une action avec le contenu téléchargé. Nous allons voir comment associer les données aux étapes suivantes.

Etape 3 - faire correspondre le titre

A l'étape 2 , nous avons chargé le contenu d'une page Internet. Nous pouvons maintenant essayer de faire correspondre le titre avec la principale nouvelle et l'imprimer par défaut.

#main section of script
<Section>

    #define name of section
    Name ourMainSection

    # Load content
    <Action ContentURL>
        #load content from the following URL
        URL http://www.cnn.com
        
        #removes newlines from downloaded content for easier matching 
        RemoveNewLine
    </Action>


    #this pattern should match main story title
    <Pattern>

	#defines expression which should match the data
       RegExp <div class="cnnMainT1Hd"><h2><a*>\
       	  {$main_title}</a></h2></div>

    </Pattern>

    #print matched data to default output
    <Action Print>
        Text Story of the day: {$main_title}\n
    </Action>

</Section>

#run section with name “ourMainSection”
Main ourMainSection

Pour faire correspondre les données entre elles, nous devons spécifier un schéma de correspondance spécifique. Le schéma suivant dit au système de faire correspondre le texte à la totalité du contenu compris entre les tags <div class="cnnMainT1Hd"><h2><a*>...</a></h2></div> et de stocker les corespondances sous la variable $main_title

Puis, nous avons défini une action qui effectuera quelque chose avec la valeur de cette variable. Dns notre cas, il s'agira simplement d'imprimer le résultat au moyen de la commande Text , mais nous aurions pu sauvegarder la valeur sous un fichier, l'insérer dans une base de données ou utiliser cette valeur pour charger   une autre page.

Etape 4 - faire correspondre le texte sous le dessin

Enfin, notre dernière étape consistera à ajouter un schéma ou plus pour le/les faire correspondre au texte principal.

#main section of script
<Section>
    #define name of section
    Name ourMainSection

    # Load content
    <Action ContentURL>
        #load content from the following URL
        URL http://www.cnn.com
        
        #removes newlines from downloaded content for easier matching 
        RemoveNewLine
    </Action>

    #this pattern should match main story title
    <Pattern>

	#defines expression which should match the data
       RegExp <div class="cnnMainT1Hd"><h2><a*>\
       	  {$main_title}</a></h2></div>
    </Pattern>

    #print matched data to default output
    <Action Print>

        Text Story of the day: {$main_title}\n
    </Action>

    #match short text from main story
    <Pattern>
       RegExp <div class="cnnMainT1">\
       {$short_text:re(.*?)}</div>
    </Pattern>

    #print matched short text
    <Action Print>
        Text Text: {$short_text}\n
    </Action>

</Section>

#run section with name “ourMainSection”
Main ourMainSection

Nous avons défini ici un schéma supplémentaire qui correspond à tout ce qui contenu entre les tags <div class="cnnMainT1">...</div> et nous avons enregistré les valeurs correspondantes sous $short_text.

Attention! Nous avons utilisé un modificateur spécifique :re(.*?) après la variable.

:re dit au système d'utiliser une expression regulière pour coller au texte

.*? est une expression régulière qui correspond à chaque caractère suivant le caractère ‘<’.

Nous avons également défini une action qui imprime le texte associé par défaut.

© 2004-2012 QualityUnit.com, All rights reserved