_FFReadHTML()

  • Hallo,

    ich habe ein Problem mit dem Befehl "_FFReadHTML()" und zwar speicher ich den Quelltext einer Seite in einem Textfile. Das klappt prinzipiell auch super. Allerdings sieht der Quelltext dann ungefähr so aus:

    Code
    <head>       	X   X  	XX 	X<meta http-equiv="content-type" conten

    an stelle der "X" sind so Vierecke. Leider stehen da wo die Vierecke sind manchmal informationen die ich brauche.

    Code
    $quellcode = _FFReadHTML("html")
    FileWrite($quelltext,"" & $quellcode)

    Was mache ich falsch? Ist _FFReadHTML überhaupt die richtige funktion?

    Danke
    Gruß Daniel

  • [autoit]

    $oFF = _FFStart("http://meinepage.com","default", 0,false)
    $sHTML = _FFReadHTML()
    Filewrite(@scriptdir & "\source.txt",$sHTML)

    [/autoit][autoit][/autoit][autoit][/autoit]

    probiers mal so.

    das Zeug im Source kannst du so trennen.

    [autoit]


    #include <Array.au3>
    #include <String.au3>

    [/autoit][autoit][/autoit][autoit]

    $st_btw = _Stringbetween($sHTML,"<head>","<meta http-equiv=") ;splittet den Teil zwischen "<head>" und "<meta http-equiv="
    _arraydisplay($st_btw) ; zeigt die ergebnisse an.

    [/autoit]

    Einmal editiert, zuletzt von Kev (29. Juli 2010 um 08:45)

  • Hi,

    das endergebniss bleibt das gleiche.

    Ich habe mal den gespeicherten Quelltext von meinem XP rechner (wo das script arbeiten soll) auf meinen Win7 rechner gezogen.
    Dort werden die Vierecke im Editor nicht angezeigt. Allerdings auch nicht der Inhalt.
    Mir ist noch aufgefallen, da ich das vorher mit dem Inet explorer gemacht habe, die Quelltext datei ist mit dem FF ca. 3mal so groß.

    Die sachen aus dem Code zu lesen klappt bereits ;)

    Danke
    Gruß Daniel

  • Mh jetzt ist irgendwie der Wurm drin.

    Ich habe meinen stringbetween befehl jetzt auf den "neuen" FF Quelltext angepasst. das funktioniert auch fast.
    Ich durchsuche den Quelltext Zeile für Zeile nach:

    Code
    $artikelnr = _StringBetween($line, '<tr><td> Art.Nr.: 	','</td></tr>')

    Die meisten Artikelnummern finde ich so auch. Allerdings fallen hin und wieder mal ein Paar Nummern unter den Tisch.
    Das liegt nach meiner Analyse daran, das der Quelltext manchmal an der falschen stelle einen Zeilenumbruch hat. Nämlich genau bei...

    Code
    '<tr><td> Art.Nr.: 	'


    dadurch steht die Artikelnummer in der nächsten Zeile und wird folglich nicht mehr gefunden. Beim IE hat das wunderbar funktioniert.

    Ich weiss jetzt nicht mehr weiter. Habt ihr eine Idee für mich?

    Ich hatte schon überlegt einfach die nächsten 6 Zeichen (so lang ist jede Artikelnummer) auszulesen. Da weiss ich aber nicht ob ein Zeilenumbruch auch als Zeichen angesehen wird und wie das grundsätzlich zu realisieren wäre.

    Danke
    Gruß Daniel