Schritt 1 - Identifikation des Musters

Zuerst müssen wir den Teil des HTML-Codes identifizieren, der unsere Informationen enthält. Sie können auf dem Bild sehen, welche Informationen wir aus der gewählten Quelle entnehmen möchten (mit rotem Pfeil markiert).

Die Hauptstory ist im Quellcode der Seite hervorgehoben:

<div style="background-color: #EAEFF4;"> <div class="cnnMainT1Hd"><h2><a href="/2004/ALLPOLITICS/12/20/bush.ap/index.html" style="color:#000;"> Bush looks to slash deficit</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> President Bush today covered a range of issues at a news conference in Washington. Bush said:<li> He would submit a budget that cuts the deficit in half and maintains strict spending discipline </li><li> Iraqi elections in January "are the beginning of a process, and it is important for the American people to understand that" </li><li> Defense Secretary Donald Rumsfeld is "doing a very fine job" </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>

Wir möchten nur den Titel der Hauptstory und den kurzen Text unter dem Bild verwenden. Wie Sie sehen, ist der Titel von den Tags <div class="cnnMainT1Hd"></div> umrahmt und der kurze Text befindet sich innerhalb der Tags <div class="cnnMainT1"></div>.

Schritt 2 - erste Version des Scripts

Jetzt werden wir damit beginnen, das Script zu schreiben. Zuerst werden wir den Hauptbereich definieren, der den Inhalt der Homepage von www.cnn.com herunterladen wird.

#Hauptbereich des Scripts
<Section>
    #Name des Bereichs definieren
    Name ourMainSection


     # Inhalt laden
    <Action ContentURL>

        #Inhalt von der folgenden URL laden
        URL http://www.cnn.com
        
        #entfernt Newlines aus dem heruntergeladenen Inhalt zur leichteren Anpassung 
        RemoveNewLine
    </Action>

</Section>

#Bereich mit Name “ourMainSection” laufen lassen
Main ourMainSection

Jedes Script enthält den Hauptbereich, der die Seite von einer spezifischen URL herunterlädt und führt dann einen Schritt mit den heruntergeladenen Inhalten aus. Im nächsten Schritt sehen Sie, wie die Daten aneinander angepasst werden können.

Schritt 3 - Anpassung des Titels

In Schritt 2 haben wir den Inhalt von der Website geladen, daher können wir nun versuchen, den Titel der Hauptstory anzupassen und es als Standard-Output auszudrucken.

#Hauptbereich des Scripts
<Section>

    #Name des Bereichs definieren
    Name ourMainSection

    # Inhalt laden
    <Action ContentURL>
        #Inhalt von der folgenden URL laden
        URL http://www.cnn.com
        
        #entfernt Newlines aus dem heruntergeladenen Inhalt zur leichteren Anpassung 
        RemoveNewLine
    </Action>


    #dieses Muster sollte mit Titel der Hauptstory übereinstimmen
    <Pattern>

	#definiert den Begriff, der mit den Daten übereinstimmen soll
       RegExp <div class="cnnMainT1Hd"><h2><a*>\
       	  {$main_title}</a></h2></div>

    </Pattern>

    #übereinstimmende Daten in Standard-Output ausdrucken
    <Action Print>
        Text Story of the day: {$main_title}\n
    </Action>

</Section>

#Bereich mit Name “ourMainSection” laufen lassen
Main ourMainSection

Um die Daten aneinander anzupassen, müssen wir ein übereinstimmendes Muster angeben. Das folgende Muster weist das System an, zwischen den Tags <div class="cnnMainT1Hd"><h2><a*>...</a></h2></div> alles anzupassen und den übereinstimmenden Wert in die Variable $main_title zu speichern.

Dann haben wir einen Vorgang definiert, der etwas mit dem Wert in dieser Variable tun wird. In unserem Fall geht es nur darum, das Ergebnis mit Hilfe des Befehls Text in den Standard-Output zu drucken. Sie können jedoch den Wert in die Datei speichern, eine Einfügung in eine Datenbank vornehmen oder den Wert zum Laden und zum Mining einer anderen Seite verwenden.

Schritt 4 - Anpassung des Textes unter dem Bild

Als letzten Schritt müssen wir einen weiteren Muster-Tag hinzufügen, der mit dem kurzen Text der Hauptstory übereinstimmt.

#Hauptbereich des Scripts
<Section>
     #Name des Bereichs definieren
    Name ourMainSection

     # Inhalt laden
    <Action ContentURL>
        #Inhalt von der folgenden URL laden
        URL http://www.cnn.com
        
        #entfernt Newlines aus dem heruntergeladenen Inhalt zur leichteren Anpassung 
        RemoveNewLine
    </Action>

     #dieses Muster sollte mit Titel der Hauptstory übereinstimmen
    <Pattern>

	#definiert den Begriff, der mit den Daten übereinstimmen soll
       RegExp <div class="cnnMainT1Hd"><h2><a*>\
       	  {$main_title}</a></h2></div>
    </Pattern>

    #übereinstimmende Daten in Standard-Output ausdrucken
    <Action Print>

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

    #kurzen Text aus Hauptstory anpassen
    <Pattern>
       RegExp <div class="cnnMainT1">\
       {$short_text:re(.*?)}</div>
    </Pattern>

    #übereinstimmenden kurzen Text drucken
    <Action Print>
        Text Text: {$short_text}\n
    </Action>

</Section>

#Bereich mit Name "ourMainSection" laufen lassen
Main ourMainSection

Hier haben wir ein weiteres Muster definiert, das alles, was sich zwischen den Tags <div class="cnnMainT1">...</div> befindet, anpassen wird und den übereinstimmenden Wert in der Variable $short_text speichern wird.

Beachten Sie, dass wir nach der Variable einen speziellen Modifier :re(.*?) verwendet haben.

:re weist das System an, den ordnungsgemäßen Begriff zu verwenden, um den Text anzupassen.

.*? ist der ordnungsgemäße Begriff, um jedes Zeichen bis zum Zeichen ‘<’ anzupassen.

Wir haben außerdem einen weiteren Vorgang definiert, der den übereinstimmenden Text in den Standard-Output druckt.

© 2004-2012 QualityUnit.com, All rights reserved