Homepages speichern

  • Hallo,

    ich will mir ein Programm schreiben, damit ich die Homepages die ich im Firefox besuche in einem eigenen Ordner als .html dateien abspeichere.
    Jetzt habe ich mir das so vorgestellt, das ich zuerst mal die URL von den besuchten Seiten in eine .txt datei speichere damit ich kontrollieren kann ob die seite nicht schon mal angeschaut worden ist, damit nicht jede seite öfters gespeichert wird.

    So, nun mein problem, ich habe mal ein Script geschrieben, und wollte schauen ob das mit dem URL abspeichern funktioniert.
    Leider schreibt er mir jedesmal die URL sooft auf, bis ich eine andere Seite besuche.

    So genug geredet, hier mal mein code:

    Spoiler anzeigen
    [autoit]


    #include <FF.au3>
    #include <File.au3>

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

    HotKeySet("{ESC}", "_EXIT")

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

    Dim $Hilf
    Dim $FileContent

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

    $FilePath = @DesktopDir & "\Homepages.txt"
    $File = FileOpen($FilePath, 9)

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

    $Socket = _FFStart("about:blank")
    FileWrite($File, "about:blank" & @CRLF)

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

    While 1
    _FileReadToArray($FilePath, $FileContent)
    $URL = _FFSetGet($Socket, "content.document.location.href")
    For $i = 0 To _FileCountLines($FilePath)
    If $URL = $FileContent[$i] Then
    $Hilf += 1
    EndIf
    Next
    If $Hilf = 0 Then
    FileWrite($File, $URL & @CRLF)
    EndIf
    WEnd

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

    Func _EXIT()
    Exit
    EndFunc

    [/autoit]


    Ich hoffe ihr könnt mir helfen.

    3 Mal editiert, zuletzt von morfi93 (30. Mai 2008 um 22:08)

    • Offizieller Beitrag

    Hallo,

    Du mußt $Hilf vor der For-Schleife auf 0 setzten!

  • Danke für deine schnelle Antwort.

    Jetzt habe ich $Hilf immer am begin der While schleife auf 0 gesetzt, aber trotzdem wird jede URL solange gespeichert, solange ich sie anschaue.

    Spoiler anzeigen
    [autoit]


    #include <FF.au3>
    #include <File.au3>

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

    HotKeySet("{ESC}", "_EXIT")

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

    Dim $Hilf
    Dim $FileContent

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

    $FilePath = @DesktopDir & "\Homepages.txt"
    $File = FileOpen($FilePath, 9)

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

    $Socket = _FFStart("about:blank")
    FileWrite($File, "about:blank" & @CRLF)

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

    While 1
    $Hilf = 0
    _FileReadToArray($FilePath, $FileContent)
    $URL = _FFSetGet($Socket, "content.document.location.href")
    For $i = 0 To _FileCountLines($FilePath)
    If $URL = $FileContent[$i] Then
    $Hilf += 1
    EndIf
    Next
    If $Hilf = 0 Then
    FileWrite($File, $URL & @CRLF)
    EndIf
    WEnd

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

    Func _EXIT()
    Exit
    EndFunc

    [/autoit]
    • Offizieller Beitrag

    Probiers mal so, ohne FileOpen, FileWrite mit Dateiname arbeitet immer im Append-Modus:


    Spoiler anzeigen
    [autoit]

    #include <FF.au3>
    #include <File.au3>

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

    HotKeySet("{ESC}", "_EXIT")

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

    Dim $Hilf = False
    Dim $FileContent

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

    $FilePath = @DesktopDir & "\Homepages.txt"

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

    $Socket = _FFStart("about:blank")
    FileWrite($FilePath, "about:blank" & @CRLF)

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

    While 1
    If $Hilf = False Then _FileReadToArray($FilePath, $FileContent)
    $URL = _FFSetGet($Socket, "content.document.location.href")
    $Hilf = 0
    For $i = 1 To $FileContent[0]
    If $URL = $FileContent[$i] Then
    $Hilf = True
    ExitLoop
    EndIf
    Next
    If $Hilf = False Then
    FileWrite($FilePath, $URL & @CRLF)
    EndIf
    Sleep(500)
    WEnd

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

    Func _EXIT()
    Exit
    EndFunc

    [/autoit]

    Edit: Sleep hinzugefügt!

  • hey, THX
    es Funktioniert so.

    wirklich ein riesen THX an dich das du mir so schnell geholfen hast :thumbup:

  • so, jetzt hänge ich leider am nächsten problem.
    Irgendwie will er mir nicht die Homepages so abspeichern wie ich das haben will.

    Wenn ich das Script starte und irgendeine Seite aufrufe und danach das Script wieder beenden, kommt auf dem Desktop nichts.

    Spoiler anzeigen
    [autoit]


    #include <FF.au3>
    #include <File.au3>

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

    HotKeySet("{ESC}", "_EXIT")

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

    Dim $Hilf = False
    Dim $FileContent

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

    $FilePath = @DesktopDir & "\Homepages.txt"

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

    $Socket = _FFStart("about:blank")
    FileWrite($FilePath, "about:blank" & @CRLF)

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

    While 1
    If $Hilf = False Then _FileReadToArray($FilePath, $FileContent)
    $URL = _FFSetGet($Socket, "content.document.location.href")
    $Hilf = 0
    For $i = 1 To $FileContent[0]
    If $URL = $FileContent[$i] Then
    $Hilf = True
    ExitLoop
    EndIf
    Next
    If $Hilf = False Then
    FileWrite($FilePath, $URL & @CRLF)
    $HTML = _FFReadHtml($Socket)
    If Not $URL = "about:blank" Then
    FileWrite(@DesktopDir & "\" & $URL & ".html", $HTML)
    EndIf
    EndIf
    WEnd

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

    Func _EXIT()
    Exit
    EndFunc

    [/autoit]
    • Offizieller Beitrag

    In der URL sind Zeichen die in einem Dateinamen nicht enthalten sein dürfen !


    Spoiler anzeigen
    [autoit]

    #include <FF.au3>
    #include <File.au3>
    #Include <String.au3>

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

    HotKeySet("{ESC}", "_EXIT")

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

    Dim $Hilf = False
    Dim $FileContent

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

    $FilePath = @DesktopDir & "\Homepages.txt"

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

    $Socket = _FFStart("about:blank")
    FileWrite($FilePath, "about:blank" & @CRLF)

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

    While 1
    If $Hilf = False Then _FileReadToArray($FilePath, $FileContent)
    $URL = _FFSetGet($Socket, "content.document.location.href")
    $Hilf = 0
    For $i = 1 To $FileContent[0]
    If $URL = $FileContent[$i] Then
    $Hilf = True
    ExitLoop
    EndIf
    Next
    If $Hilf = False Then
    FileWrite($FilePath, $URL & @CRLF)
    $HTML = _FFReadHtml($Socket)
    If Not $URL = "about:blank" Then
    $aszBetween = _StringBetween($URL, "//", "/")
    FileWrite(@DesktopDir & "\" & $aszBetween[0] & ".html", $HTML)
    EndIf
    EndIf
    Sleep(500)
    WEnd

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

    Func _EXIT()
    Exit
    EndFunc

    [/autoit]
  • Es werden mir trotzdem noch keine Dateien auf dem Desktop erstellt ...
    irgendwie komisch ^^

    • Offizieller Beitrag

    Ersetzte mal

    [autoit]

    If Not $URL = "about:blank" Then

    [/autoit]

    durch

    [autoit]

    If $URL <> "about:blank" Then

    [/autoit]
  • Seit der letzten Version der FF.au3 kannst du statt:

    [autoit]

    _FFSetGet($Socket, "content.document.location.href")

    [/autoit]


    auch

    [autoit]

    _FFSetGet($Socket, ".location.href")

    [/autoit]

    schreiben, wichtig dabei ist der Punkt am Anfang des Strings, sonst gehts nicht. Das gleiche geht bei _FFClick.