+ Antworten
Ergebnis 1 bis 4 von 4

Thema: HTML-Parser:aus vielen HTML-Files genau(!) nur eine Zeile herausholen- immer dieselbe

  1. #1
    lin
    lin ist offline
    Kommt häufiger vorbei
    Registriert seit
    05.06.2010
    Beiträge
    281
    Bedankte sich
    137
    1 Danksagung in 1 Beitrag

    Standard HTML-Parser:aus vielen HTML-Files genau(!) nur eine Zeile herausholen- immer dieselbe

    Habe noch einen parser-job:
    Aufgabe: in einem HTML-Parser-Job soll aus ca. 5000 HTML-Files exakt immer die Zeile 999 heraus-extrahiert werden. Auch hier will ich die Ergebnisse in einer DB speichern.

    PHP-Code:
    </p><h1>dataset 1:</h1>

    &
    nbsp;<table border="0" bgcolor="#EFEFEF"  leftmargin="15" topmargin="5"><tr>  
    <
    td><strong>name:</strong>&nbsp;</td>  <td width=500myname one         </td></tr><tr>  
    <
    td><strong>type:</strong>&nbsp;</td>  <td width=500>          type_one  (04313488)        </td></tr><tr>
    <
    td><strong>aresss:</strong>&nbsp;</td><td>Friedrichstr70,&nbsp;73430&nbsp;Madrid</td></tr><tr>  
    <
    td><strong>adresse_two:</strong>&nbsp;</td>  <td>          no_value        </td></tr><tr>  
    <
    td><strong>telefone:</strong>&nbsp;</td>  <td>          0000736111/680040        </td></tr><tr>  
    <
    td><strong>Fax:</strong>&nbsp;</td>  <td>          0000736111/680040        </td></tr><tr>  
    <
    td><strong>E-Mail:</strong>&nbsp;</td>  <td>          Keine Angabe        </td></tr><tr>      
    <
    td><strong>Internet:</strong>&nbsp;</td><td><a href="http://www.mysite.es" target="_blank">www.mysite.es</a><br></td></tr><tr> <td><strong>the office:</strong>&nbsp;</td>   
    <
    td><a href="http://www.mysite_two" target="_blank">mysite_two </a><br></td></tr><tr
    <
    td><strong>:</strong>&nbsp;</td><tdno_value </td></tr><tr
    <
    td><strong>officer:</strong>&nbsp;</td>  <tdno_value        </td>  </td></tr><tr>
    <
    td><strong>employees:</strong>&nbsp;</td>  <td259        </td></tr><tr>  
    <
    td><strong>offices:</strong>&nbsp;</td>  <td>     8        </td></tr><tr>  
    <
    td><strong>worker:</strong>&nbsp;</td>  <td>     no_value        </td></tr><tr>  
    <
    td><strong>country:</strong>&nbsp;</td>  <td>    contryname        </td></tr><tr>  
    <
    td><strong>the_council:</strong>&nbsp;</td>  <td
    Frage - hilft es etwas wenn ich ggf. dem PERL oder PHP-Parser "sage" dass er immer die Zeile 999 herausholen soll1?

    Dann ist die Übergabe an die DB immr noch nicht gemacht!

    Freu mich auf Tipps.

    lin
    Geändert von lin (16.10.2010 um 00:32 Uhr)

  2. #2
    Wohnt hier Avatar von oldlady
    Registriert seit
    17.09.2008
    Ort
    München
    Beiträge
    4.848
    Bedankte sich
    357
    Erhielt 1.409 Danksagungen
    in 1.290 Beiträgen

    Standard

    hilft es etwas wenn ich ggf. dem PERL oder PHP-Parser "sage" dass er immer die Zeile 999 herausholen soll1?
    ja
    EDIT: ich glaub, ich hab dich da falsch verstanden:
    Falls du nicht die Datei-Zeile 999 meinst sondern die Tabellen-Zeile 999dann musst du natürlich die 999.te <tr> suchen.

    Dann ist die Übergabe an die DB immr noch nicht gemacht!
    Du schreibst nicht was du in welcher Form übergeben willst. Die einfachste Variante,
    die mir einfällt: Du generierst SQL-Befehle.
    Die kannst du dann einfach per myphpadmin auf deiner Datenbank ausführen lassen.

    Gruß, oldlady
    Geändert von oldlady (16.10.2010 um 09:47 Uhr) Grund: evtl. missverständnis
    Grüße, Christiane
    Joomla braucht dich!

  3. #3
    Joomla Guru Avatar von elkuku
    Registriert seit
    14.06.2006
    Ort
    Guayaquil - Südamerika
    Beiträge
    1.689
    Bedankte sich
    74
    Erhielt 517 Danksagungen
    in 397 Beiträgen

    Standard

    Formulier doch die Aufgabe bitte noch einmal allgemeinverständlich..

    Hilfreich wäre auch zu wissen, was in der Zeile 999 denn steht ? Oder war das auch nur ein Beispiel ?

    Ganz allgemein klingt das eher nach einem regulären Ausdruck was Du suchst..

    So ganz nebenbei: Wie kommst Du eigentlich auf Perl ?
    Gruß,
    Nikolai
    Hilf mit: Deutsche Joomla! Dokumentation Help testing: EasyCreator Noch Fragen ? Forum.Joomla-Nafu.de

  4. #4
    lin
    lin ist offline
    Kommt häufiger vorbei
    Registriert seit
    05.06.2010
    Beiträge
    281
    Bedankte sich
    137
    1 Danksagung in 1 Beitrag

    Blinzeln

    hallo Elkuku - hallo oldlady!

    vielen Dank fürs Posten:

    Zitat Zitat von elkuku Beitrag anzeigen
    Formulier doch die Aufgabe bitte noch einmal allgemeinverständlich..
    Hilfreich wäre auch zu wissen, was in der Zeile 999 denn steht ? Oder war das auch nur ein Beispiel ?
    Ganz allgemein klingt das eher nach einem regulären Ausdruck was Du suchst..
    So ganz nebenbei: Wie kommst Du eigentlich auf Perl ?
    das mit dem REGEX stimmt schon - es geht ganz in die Richtung.

    muss ein Dokument parsen das ich insges. einige tausend mal vorliegen habe. Immer in der Z. 999 liegen die DATEN die ich brauche. Also dachte ich - diese Zeile muss als Erstes rausgeholt werden... :

    1 perl -i.old -ne 'print if $.==999' *html laufen lassen. Das extrahiert die Zeile 999 meiner Files.



    use strict;

    use HTML::TreeBuilder::XPath;

    my $tree = HTML::TreeBuilder::XPath->new;

    # hier der File-Name

    open(my $fh, "<", "file.html") or die $!;

    $tree->parse_file($fh);

    my ($name) = $tree->findnodes(qq{/html/body/table/tr[1]/td[2]});

    print $name->as_text;


    wie die Xpaths rausfinden: mit dem Firefox-plugin namens XPather, der es erlaubt einfach auf ein html-element zu klicken und dann den korrespondierenden xpath zu ermitteln.


    oder es geht auch:

    perl -ne"$. == 999 and print" > all999lines.txt



    By the way - gibts hier Leute die Erfahrung haben mit Domdocument!?

    Viele Grüße nach Südamerika!!!!
    Freu mich immer wieder von dir zu lesen!!

    lin

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein