mit AutoIt HTML Quellcodeseiten (.htm) modifizieren

  • Hallo zusammen,

    wie kann man am besten mit AutoIt HTML Quellcodeseiten modifizieren, also die HTML Datei öffnen, etwas suchen, eine Zeile hinzufügen oder ändern und das ganze wieder abspeichern ?

  • Wir hatten hier schon mal so'n Thread ->

    Da ging's um eine ähnliche Fragestellung - die Frage ist halt:

    Was willst Du machen?

    Ich habe neulich so eine PopUp-Fenster -"belastetet" Seite einfach komplett gespeichert (das geht mit FF recht einfach) und dann im Nachhinein mit meinem SuperHTML-Programm successive alle Abschnitte, wo was mit "Cookies" vorkam, einfach komplett rausgelöscht.
    Und siehe da - kein PopUp-Fenster mehr und man konnte die eigentlich interessante Seite dann endlich gut lesen ...

    Man sollte es ja nicht glauben, wieviel "Müll" da so zusammen kommt! Verständlich wird damit auch, warum die Ladezeiten "moderner" Web-Seiten immer länger werden und deshalb immer höhere Datentransfer-Geschwindigkeiten notwendig sind - meine http://www.ps-blnkd.de geht sehr schnell!

    Na ja, das ist natürlich keine besonders intelligente Lösung und auch nur für Ausnahmefälle geeignet und ob das in jedem Fall auch so funktioniert, ist eben auch nicht sicher - nur mal so als Anregung ...

    Die Ansage mit den "notwendigen Cookies" ist vielfach eine absolute Lüge, wenn nicht Kommerzielles, wie z.B. ein Shop mit einem Warenkorb dahinter steht. Wie ich neulich informiert wurde - so steht es ja auch rotzfrech in deren "Datenschutz"-Bedingungen - ist es so, daß die Daten (z.B. eMail-Adressen) an "Partner" weitergegeben werden - natürlich nicht kostenlos! - und diese die dann weiter verhökern usw. usf. Damit ist auch klar, warum man mit Spam-Mails nur so zugeschüttet wird - von weiterem Ungemach mal ganz zu schweigen ...

    Eigenartigerweise sitzen die meisten davon irgendwo in den USA.

    Grüsse aus Berlin

    PSblnkd

  • Hallo zusammen,

    ich habe mittlerweile erste "Ansätze" gefunden, bin mir aber nicht sicher ob das der richtige Ansatz ist und ich habe noch keine Idee wie ich das Array wieder gespeichert bekomme ?

    AutoIt
        $Datei = FileOpen($sHTML)
        ;$cLine = _FileCountLines($Datei)
    
        $aFile = FileReadToArray($Datei)
    
        $iIndex = _ArraySearch($aFile,$sID,0,0,0,1,1)
        consolewrite("Gefunden: " & $iIndex & " " & $aFile[$iIndex] & @CRLF)
        
        FileClose($Datei)
  • Zum Hintergrund meines Vorhabens: Ich habe eine HTML Seite, die lokal abgelegt ist, diese wird von einem Excel Sheet erzeugt.

    Diese HTML Seite möchte ich durchsuchen und bei dem gefunden HTML Tag <td> die Hintergrundfarbe ändern.

  • gert_nrw_71 :

    Könntest Du eine solche HTML-Seite mal posten (muss gezippt werden, falls Du sie als Dateianhang liefern möchtest). Vertrauliche Daten, sofern vorhanden, durch Dummyfelder ersetzen.

    Die Datei in ein Array zu laden ist ggf. gar nicht erforderlich. Wahrscheinlich reichen die üblichen String-Funktionen von AutoIt aus - ansonsten gäbe es noch die Option über reguläre Ausdrücke (RegEx).

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Könntest Du eine solche HTML-Seite mal posten (muss gezippt werden, falls Du sie als Dateianhang liefern möchtest). Vertrauliche Daten, sofern vorhanden, durch Dummyfelder ersetzen.

    Die Datei in ein Array zu laden ist ggf. gar nicht erforderlich. Wahrscheinlich reichen die üblichen String-Funktionen von AutoIt aus - ansonsten gäbe es noch die Option über reguläre Ausdrücke (RegEx).

    Hallo,

    anbei die HTML Seite, gesucht soll dort nach der KOM (Kommission) und diese soll dann Farblich hervorgehoben werden, für den Produktionsstart eine Farbe und für das Produktionsende eine andere Farbe.

  • Hi,

    wie kann ich denn den geänderten HTML Code wieder abspeichern, das kriege ich irgendwie nicht hin ?

  • Da du nur einen Lese- und einen Schreibvorgang hast, spar dir FileOpen und verwende einfach den Dateipfad für Read/Write. Dann hast auch keine Probleme mit den Flags.

    Edit:

    Das dein Text gelöscht wird, liegt daran, dass du im gemeinsamen Read/Write anders vorgehen musst.

    Zitat

    When reading and writing via the same file handle, the FileSetPos() function must be used to update the current file position.

  • Hallo zusammen,

    ich drehe mich im Kreis, wenn ich das mit dem Dateipfad umsetzte, bekomme ich mit FileSetPos den Zeiger nicht an den Anfang und er hängt mir beim schreiben den Inhalt nochmal komplett unten drunter, somit verdoppeln sich die Einträge jedes mal. Laut Doku ist FileSetPos auch nur mit einem filehandle einsetzbar ?

    Wenn ich das mit einem filehandle umsetze, speichert er mir die Date nicht...

    AutoIt
    $hFile = FileOpen($sHTML, $FO_ANSI)
    
    $Dateiinhalt = FileRead($hFile)
    
    ;$file = filewrite($hFile,$Inhaltneu)
    $file = filewrite($hFile,"Test")
    
    if $file = 0 then msgbox(1,"","Datei nicht gespeichert")
    
    FileClose($hFile)
  • Laut Doku ist FileSetPos auch nur mit einem filehandle einsetzbar ?

    Das ist korrekt.

    Aber warum zum Teufel willst du die Datei UNBEDINGT zum Lesen UND Schreiben öffnen?!

    Dazu besteht doch keine Notwendigkeit, so wie du das umsetzt.

    Also

    1. sRead = FileRead(Dateipfad)

    2. sRead manipulieren

    3. hwnd = FileOpen(Dateipfad, Overwrite)

    4. FileWrite(hwnd , manipulierte sRead)

    5. FileClose(hwnd)

  • Aber warum zum Teufel willst du die Datei UNBEDINGT zum Lesen UND Schreiben öffnen?!

    Weil ich davon ausgegangen bin, dass man das so macht :)

    Und ich dachte das man bei dem Eintrag eben genau dieses machen kann:

    $FO_ANSI (512) = Use ANSI reading and writing mode.

    Aber man lernt nie aus :)