_INetGetSource - läd alte Version!?

  • Hallo Zusammen,
    folgendes Vorhaben:

    ich möchte von Sourceforge immer den neusten Notepadd++ runterladen.
    Dazu ziehe ich mir den Quelltext und durchsuche ihn nach dem entsprechendem Link.

    folgendes Problem:
    Im Moment ist die aktuelle Version die 5.7.
    Wenn ich aber mein Script durchlaufen lasse, dann gibt er mir die 4.7.2 an.
    Habe mir den Quellcode der Seite und den Quellcode über _INetGetSource angeguckt und festgestellt, dass diese ziemlich gleich sind, bis eben auf diesen Versionsunterschied.
    Wie kann das sein? übersehe ich was?

    Mein Code:

    Spoiler anzeigen
    [autoit]


    #include <INet.au3>
    #Include <String.au3>

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

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

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

    $test = _INetGetSource ( 'http://sourceforge.net/projects/notepad-plus/' )
    $string = _StringBetween($test, '<a class="button button-dload dload { url: '', '; }" href="/projects/notepad-plus/files/notepad')
    MsgBox(0, "Link", $string[0])

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

    Func CLOSEClicked()
    Exit
    EndFunc

    [/autoit]

    Sollausgabe(Leerzeichen durch "% 2 0" und + durch "% 2 B" ersetzen(ohne leerzeichen jeweils), irgendwie hat der hier gerade ein Problem mit):

    Code
    http://downloads.sourceforge.net/project/notepad-plus/notepad++ releases binary/npp 5.7 bin/npp.5.7.Installer.exe?ts=1278675869&#39

    Istausgabe:

    Code
    http://downloads.sourceforge.net/project/notepad-plus/notepad%2B%2B%20releases%20source/npp%204.7.2%20src/npp.src.4.7.2.zip?ts=1278677690&#39

    Danke euch!

    p.s.: Im Quellcode ist immer nur eine Version hinterlegt, also sind $string[1], etc leer bzw. nicht vorhanden.

    Gruß
    Blade

    greetz Blade

    Weil Denken die schwerste Arbeit ist, die es gibt, beschäftigen sich auch nur wenige damit.

    Einmal editiert, zuletzt von Blade (9. Juli 2010 um 15:33)

  • Guck dir mal die Parameter an!
    Es gibt einen Parameter, der es verbietet/zulässt, dass wenn eine TEMP Datei davon exestiert sie "runterläd".
    Also den Parameter ändern und er wird gezwungen es neu zu laden.

    Also muss du das mit dem Befehl machen:

    [autoit]


    InetGet ( "URL" [,"filename" [, reload [, background]]] )

    [/autoit]
    Code
    reload [optional]
    0 = (Standard) Holt die Datei, wenn möglich, aus dem lokalen  Cache
    1 = Erzwingt ein erneutes Laden von der Remote-Seite

    Nur keine Hektik - das Leben ist stressig genug

  • Es geht um _INetGetSource und der hat keine Parameter (stehen zumindestens nicht in der Hilfe).

    Mit InetGet ziehe ich mir ja eine Datei.
    Ich will aber erst den Quelltext durchsuchen um den Link zur aktuellen Datei rauszufinden.

    Oder schwebt dir ein anderer Weg vor?
    Kann ich die HTML runterladen und danach einlesen und durchsuchen? Würde das einen unterschied machen, als wenn ich die Source direkt ziehe?

    greetz Blade

    Weil Denken die schwerste Arbeit ist, die es gibt, beschäftigen sich auch nur wenige damit.

  • Verwende InetRead ;) _InetGetSource stellt nicht alle Parameter dieser Funktion zur Verfügung.

    Edit: Es sieht so aus, dass die Version vom Useragent abhängt. So geht es:

    Spoiler anzeigen
    [autoit]

    #include <INet.au3>
    #Include <String.au3>

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

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

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

    HttpSetUserAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.6)")
    $test = InetRead( 'http://sourceforge.net/projects/notepad-plus/' , 1)
    $test = BinaryToString($test)
    $string = _StringBetween($test, '<a class="button button-dload dload { url: ', '; }" href="/projects/notepad-plus/files/notepad')
    MsgBox(0, "Link", $string[0])

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

    Func CLOSEClicked()
    Exit
    EndFunc

    [/autoit]
  • Ah ok... das mit dem "BinaryToString" hat mir gefehlt, habe das in der Hilfe überlesen dass es ein binary string ist.

    Ich danke euch beiden recht herzlich!

    Schönes WE.

    Gruß
    Blade

    greetz Blade

    Weil Denken die schwerste Arbeit ist, die es gibt, beschäftigen sich auch nur wenige damit.