FritzBox Anrufliste speichern

  • Hi,
    ich würde gerne bei einer FritzBox die Anrufliste per Script speichern.

    Leider komme ich nicht klar mit dem Quelltext.

    Auf die Startseite der FritzBox komme ich.
    Leider erkenne ich aus dem Quelltext nicht wie ich das Feld "Kennwort" ansprechen muß.

    Wenn ich mich dann manuell einlogge, muss ich als nächstes auf "Anrufliste" klicken.
    Leider weiss ich auch da nicht, wie ich es ansprechen soll.
    Wenn ich es richtig sehe, ist es java.

    Kann mir einer von euch weiterhelfen, der vielleicht ne FritzBox hat.

    Mein bisheriges Script:

    Spoiler anzeigen
    [autoit]

    #include<IE.au3>

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

    Opt("WinTitleMatchMode", 2)
    $internet_adresse = "fritz.box"

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

    $oIE = _IECreate ($internet_adresse, 0, 1, 1, 0)
    If @error >0 Then Exit
    WinSetState("Microsoft Internet Explorer", "", @SW_MAXIMIZE) ;maximieren

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

    $oForm = _IEFormGetCollection($oIE, 0)
    $oName = _IEFormElementGetObjByName($oIE, "uiViewPassword")
    _IEFormElementSetValue($oName, "xxxxxxx")
    _IEFormSubmit ($oForm)

    [/autoit]


    Hier mal der Quelltext von der Seite mit dem Kennwort.


    Spoiler anzeigen
    • Offizieller Beitrag

    Hallo,

    die normale Webseiten der FritzBox ist in Frames unterteilt, deshalb muss man auf den richtigen Frame zugreifen:

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>

    Opt("WinTitleMatchMode", 2)
    $internet_adresse = "http://fritz.box"

    $oIE = _IECreate ($internet_adresse, 0, 1, 1, 0)

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

    If @error >0 Then Exit

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

    WinSetState("Microsoft Internet Explorer", "", @SW_MAXIMIZE) ;maximieren

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

    _IELoadWait($oIE, 2000)

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

    $oFrame = _IEFrameGetObjByName($oIE, "frame_content")
    $oForm = _IEFormGetObjByName($oFrame, "uiViewForm")

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

    ; Passwort einsetzen
    $Password = _IEFormElementGetObjByName($oForm, "pass")
    _IEFormElementSetValue($Password, "xxxxxxxx")

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

    ; Anmelden-Button drücken
    $LoginBtn = _IEFormElementGetObjByName($oForm, "btnLogin")
    _IEAction($LoginBtn, "click")

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

    _IELoadWait($oIE, 2000)

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

    ; Zur Anrufliste wechseln
    _IELinkClickByText ($oFrame, "Anrufliste")

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

    _IELoadWait($oIE, 2000)

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

    ; Sichern-Button drücken
    $SaveBtn = _IEGetObjById($oFrame, "buttonExport")
    _IEAction($SaveBtn, "click")

    [/autoit]

    oder man muss auf die Seiten zugreifen die ohne Frames arbeiten:

    Spoiler anzeigen
    [autoit]

    #include <IE.au3>

    Opt("WinTitleMatchMode", 2)
    $internet_adresse = "http://fritz.box/cgi-bin/webcm?getpage=../html/index_inhalt.html"

    $oIE = _IECreate ($internet_adresse, 0, 1, 1, 0)

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

    If @error >0 Then Exit

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

    WinSetState("Microsoft Internet Explorer", "", @SW_MAXIMIZE) ;maximieren

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

    _IELoadWait($oIE, 2000)

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

    $oForm = _IEFormGetObjByName($oIE, "uiViewForm")

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

    ; Passwort einsetzen
    $Password = _IEFormElementGetObjByName($oForm, "pass")
    _IEFormElementSetValue($Password, "xxxxxxxxxx")

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

    ; Anmelden-Button drücken
    $LoginBtn = _IEFormElementGetObjByName($oForm, "btnLogin")
    _IEAction($LoginBtn, "click")

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

    _IELoadWait($oIE, 2000)

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

    ; Zur Anrufliste wechseln
    _IELinkClickByText ($oIE, "Anrufliste")

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

    _IELoadWait($oIE, 2000)

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

    ; Sichern-Button drücken
    $SaveBtn = _IEGetObjById($oIE, "buttonExport")
    _IEAction($SaveBtn, "click")

    [/autoit]

    Der restliche Code sollte ja jetzt kein Problem mehr sein!

  • Tweaky
    Manchmal geht'S auch mit einer Zeile. ;)

    Ruf mal das auf:
    Fritz.Box Anrufliste
    Für passwortgeschützten Zugriff:
    http://passwort@fritz.box/cgi-bin/webcm?…./html/de/FRITZ!Box_Anrufliste.csv

    Gruß
    Westi

    EDIT:
    Das war natürlich nicht ganz richtig.
    Beim direkten Aufruf kommt die Startseite der Box.
    So ist es richtig:

    [autoit]

    InetGet ( "http://fritz.box/cgi-bin/webcm?getpage=../html/de/FRITZ!Box_Anrufliste.csv" ,"C:\Anrufliste.csv",1 )
    ;oder mit Passwort
    InetGet ( "http://passwort@fritz.box/cgi-bin/webcm?getpage=../html/de/FRITZ!Box_Anrufliste.csv" ,"C:\Anrufliste.csv",1 )

    [/autoit]

    Einmal editiert, zuletzt von Westi (11. November 2007 um 23:39)