Amazon Preis auslesen

  • Hallo zusammen,

    ich habe jetzt soviel hier im Forum gefunden bzgl. Internet Seiten auslesen aber es funktioniert bei mir nicht.
    Kann mir einer sagen warum es nicht funktioniert?
    Ist bestimmt was ganz simples was ich vergessen habe.

    Danke und Gruß
    Norman

    [autoit]


    #include<inet.au3>
    #include<string.au3>
    Global $amazon, $preis
    $amazon = _INetGetSource("http://www.amazon.de/Samsung-SSG-3100GB-XC-3D-Brille-geeignet/dp/B004QO1OUQ/ref=sr_1_7?ie=UTF8&qid=1313449099&sr=8-7")
    $ausgabe = _StringBetween($amazon,'<div class="price">',"</div>")
    ToolTip($ausgabe)
    Sleep(3000)

    [/autoit]

    Einmal editiert, zuletzt von Norman Bates (19. August 2011 um 22:32)

  • Hier kannst dus nochmal nachprüfen:

    Spoiler anzeigen
    [autoit]

    #include<inet.au3>
    #include<string.au3>
    #include <array.au3>

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

    Global $amazon, $preis
    $amazon = _INetGetSource("http://www.amazon.de/Samsung-SSG-3100GB-XC-3D-Brille-geeignet/dp/B004QO1OUQ/ref=sr_1_7?ie=UTF8&qid=1313449099&sr=8-7")
    $ausgabe = _StringBetween($amazon,'<div class="price">',"</div>")
    _ArrayDisplay($ausgabe)

    [/autoit]

    funzt einbahnfrei ;)

    ausgabe wäre dann in deinem Fall:

    [autoit]

    msgbox(0,"Der Preis beträgt heute",$ausgabe[0])

    [/autoit]
  • Für mich sieht das so aus, als hättets du vergessen, die Array.au3 einzubinden.

    Edit. Ne, also es geht auch ohne, jedenfalls bei mir Oo

  • Zuhause läuft es bei mir auch nur auf meinem Arbeits PC nicht aber das werde ich anders lösen.

    Nun noch was anderes.

    Wenn ich das nun in eine For Schleife packe mit 1 Stunde Sleep sollte er mir doch immer den aktuellen Preis geben oder?


    Gruß

    Norman

  • Für mich sieht das so aus, als hättets du vergessen, die Array.au3 einzubinden.

    Die hat Kev bei sich nur für die _arraydisplay Zeile drin, für den Rest wird das include nicht benötigt.


    Wenn ich das nun in eine For Schleife packe mit 1 Stunde Sleep sollte er mir doch immer den aktuellen Preis geben oder?

    Ja. Du solltest die Ausgabe aber dann nicht per msgbox oder arraydisplay machen, da das Script sonst pausiert bis die msgbox weggeklickt wird.

  • Ja. Du solltest die Ausgabe aber dann nicht per msgbox oder arraydisplay machen, da das Script sonst pausiert bis die msgbox weggeklickt wird.


    Ich wollte es mit TrayTip machen da kann ich ja auch wie bei Msgbox eine Timer stellen wie lange dieser sichbar sein soll.


    Danke für Eure Hilfe

    Gruß Norman

  • Ich bin es nochmal.

    Ich das script funktioniert dank der Hilfe von euch super.


    [autoit]

    #include<inet.au3>
    #include<string.au3>
    #include<Array.au3>
    Global $amazon, $preis, $versand
    ;$amazon = _INetGetSource("http://www.amazon.de/gp/product/B004QO1OUQ/ref=olp_product_details?ie=UTF8&me=&seller=")
    $amazon = _INetGetSource("http://www.amazon.de/Samsung-UE55D6500VSXZG-3D-LED-Backlight-Fernseher-400Hz-schwarz/dp/B004QF0R0S/ref=sr_1_1?ie=UTF8&qid=1313499172&sr=8-1")
    $ausgabe = _StringBetween($amazon,'<div class="price">',"</div>")
    $versand = _StringBetween($amazon, '<span class="availGreen">Auf Lager.</span><br />', '<b>Amazon.de</b>.')

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

    TrayTip("Samsung UE55D6500", $ausgabe[0] & $versand[0] & "Amazon.de",2); das mit Amazon habe ich gemacht weil sonst immer <b> mit drin steht
    Sleep(6000)
    ;_ArrayDisplay($versand)

    [/autoit]


    Jetzt habe ein bisschen rumprobiert und habe es auch teilweise geschafft das er mir ausgibt das der Artikel durch Amazon versand wird. Was ich ja auch haben wollte.
    Ich bekomme es einfach nicht hin das er mir anzeigt durch welchen Anbieter dieser Artikel gerade versendet wird.

    Ich wollte mit einer IF Abfrage:

    [autoit]


    If ($versand[0]) <> "Versand durch Amazon" then
    msgbox(0, "", "was auch immer")
    else
    TrayTip("Artikel", $ausgabe[0] & $versand[0] & "Amazon.de",2)
    endif

    [/autoit]

    Er gibt mir nicht das aus was ich möchte .

    Gruß Norman

  • So sollte es passen. Nicht schön, da ich etwas im Stress bin, aber passt.

    [autoit]

    #include<inet.au3>
    #include<string.au3>
    #include<Array.au3>

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

    Global $amazon, $preis, $versand
    ;$amazon = _INetGetSource("http://www.amazon.de/gp/product/B004QO1OUQ/ref=olp_product_details?ie=UTF8&me=&seller=")
    $amazon = _INetGetSource("http://www.amazon.de/Samsung-UE55D6500VSXZG-3D-LED-Backlight-Fernseher-400Hz-schwarz/dp/B004QF0R0S/ref=sr_1_1?ie=UTF8&qid=1313499172&sr=8-1")
    $ausgabe = _StringBetween($amazon,'<div class="price">',"</div>")
    $versand = _StringBetween($amazon, '<span class="availGreen">Auf Lager.</span><br />', '<b>Amazon.de</b>.')

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

    $neu = _StringBetween($amazon,"</span><br /> ","</b>.")
    $anbieter = StringTrimLeft($neu[0],29)

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

    TrayTip("Samsung UE55D6500", $ausgabe[0] & $versand[0] & $anbieter,2); das mit Amazon habe ich gemacht weil sonst immer <b> mit drin steht
    sleep(2000)
    ;_ArrayDisplay($versand)

    [/autoit]
  • Danke Kev bin ich jetzt einen Schritt weiter.

    Jetzt habe ich folgendes Problem:

    Ich will abfragen ob "Amazon" oder "Verkäufer xyz" auf der Seite dargestellt ist.
    Kann mir bitte einer helfen...ich komme einfach nicht weiter

    Spoiler anzeigen
    [autoit]

    #include<inet.au3>
    #include<string.au3>
    #include<Array.au3>
    Global $amazon, $preis, $versand, $passwort
    HotKeySet("{ESC}","ende")
    ;~ $amazon = _INetGetSource("http://www.amazon.de/gp/product/B004MKNBNM/ref=s9_ri_gw_g23_ir03?pf_rd_m=A3JWKAKR8XB7XF&pf_rd_s=center-4&pf_rd_r=04RE12H5KS6P15VHYYGE&pf_rd_t=101&pf_rd_p=171812327&pf_rd_i=301128")
    $amazon = _INetGetSource("http://www.amazon.de/Samsung-UE55D6500VSXZG-3D-LED-Backlight-Fernseher-400Hz-schwarz/dp/B004QF0R0S/ref=sr_1_1?ie=UTF8&qid=1313499172&sr=8-1")
    $ausgabe = _StringBetween($amazon,'<div class="price">',"</div>") ; Hier wird "EUR" wird ausgelesen
    $versand = _StringBetween($amazon, '<span class="availGreen">Auf Lager.</span><br />', '<b>Amazon.de</b>.') ; Hier wird "Verkauf und Versand" ausgelesen
    $neu = _StringBetween($amazon,'href="/gp/help/seller/at-a-glance.html?ie=UTF8&amp;seller=',"</a>")
    If $versand[0] Then
    TrayTip("Samsung UE55D6500", $ausgabe[0] & $versand[0] & "Amazon.de",2)
    ElseIf $neu[0] Then
    $anbieter = StringTrimLeft($neu[0],16); Hier wird nur der Name von Verkäufer xyz von der Variabeln $neu ausgelesen
    TrayTip("Samsung UE55D6500", $ausgabe[0] &" - Verkäufer: " & $anbieter,2)
    Sleep(3000)
    EndIf

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

    Func ende()
    Exit
    EndFunc

    [/autoit]


    Kev

    Mit der Func habe ich es mal probiert. Nur ich habe es nicht hinbekommen.
    Die Funktion wird aufgerufen und wird nur einmal ausgeführt.

    EDIT: Hab´s durch langes rumprobieren geschafft. :D

    Danke und Gruß
    Norman

    Einmal editiert, zuletzt von Norman Bates (18. August 2011 um 21:03)