Seite 1 von 1
Preis Auslesen
Verfasst: 20.03.2008 09:00
von Fox
Hi Leute... Ich hab ein Poblem
Ich will von meiner Ebay Auktion den aktuellen Preis auslesen.
Ich habs schon versucht im Quelltext rumzusuchen, das geht auch, aber wenn ich mit #PB_Web_HtmlCode arbeite, weiss ich nicht wie ich den string auslesen soll, in dem der preis enthalten ist.
Hier meine Auktion:
http://cgi.ebay.de/Nokia-6680-Handy-256 ... dZViewItem
Code: Alles auswählen
Adresse$ = "http://cgi.ebay.de/Nokia-6680-Handy-256MB-Speicherkarte-Cover_W0QQitemZ250226956408QQihZ015QQcategoryZ115579QQssPageNameZWDVWQQrdZ1QQcmdZViewItem"
Mein ach so sinnvoller Code...
If OpenWindow(0,600,600,590,590,"Ebay SMS",#PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
WebGadget(0,0,0,590,590,Adresse$,#PB_Web_HtmlCode)
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Ich hab keine Ahnung wie ich das auslesen soll, vielleicht könnt ihr mir ja helfen
Danke schonmal
Fox
Verfasst: 20.03.2008 09:40
von PMTheQuick
Ich bastel mal was, ok? Hab auch schonmal nen PB-Memberlist-Reader gebastelt
Gruss
PMTheQuick
EDIT: So ich habs. Habs mit mehreren Ebay-Angeboten getestet, funzt perfekt. Am anstrengensten war das Parsen der Strings
Code: Alles auswählen
InitNetwork()
ConnectionID = OpenNetworkConnection("cgi.ebay.de", 80)
EbayAngebot$ = "http://cgi.ebay.de/Nokia-6680-Handy-256MB-Speicherkarte-Cover_W0QQitemZ250226956408QQihZ015QQcategoryZ115579QQssPageNameZWDVWQQrdZ1QQcmdZViewItem"
; EbayAngebot$ = "http://cgi.ebay.de/Alfa-Romeo-2000-Spider-Bj-77_W0QQitemZ250224389117QQihZ015QQcategoryZ9834QQssPageNameZWDVWQQrdZ1QQcmdZViewItem"
; EbayAngebot$ = "http://cgi.ebay.de/Alfa-146-ti-2l-16v-mit-klima-aus-1-hand-scheckheft-145_W0QQitemZ220213942594QQihZ012QQcategoryZ9834QQssPageNameZWDVWQQrdZ1QQcmdZViewItem"
If ConnectionID
com$="GET "+EbayAngebot$+" HTTP/1.1"+Chr(13)+Chr(10)
com$=com$+"Accept: */*"+Chr(13)+Chr(10)
com$=com$+"Accept: text/html"+Chr(13)+Chr(10)
com$=com$+"Host: "+host$+Chr(13)+Chr(10)
com$=com$+"User-Agent: Ebay CVS Parser"+Chr(13)+Chr(10)
com$=com$+Chr(13)+Chr(10)
Res = SendNetworkData(ConnectionID,@com$,Len(com$))
time = GetTickCount_()
CreateFile(0, "site.txt")
Repeat
Delay(10)
Result = NetworkClientEvent(ConnectionID)
If Result = 2
Content$ = Space(14500)
ReceiveNetworkData(ConnectionID,@Content$,14500)
time = GetTickCount_()
WriteString(0, Content$)
ElseIf Result = 0
If GetTickCount_()-time > 3000
Ok = 1
EndIf
EndIf
Until Ok = 1
CloseNetworkConnection(ConnectionID)
CloseFile(0)
ReadFile(0, "site.txt")
;//--></script><tr><td colspan="+Chr(34)+"4"+Chr(34)+" bgcolor="+Chr(34)+"#ffffff"+Chr(34)+" style="+Chr(34)+"padding:30px 0 5px 5px"+Chr(34)+"><span style="+Chr(34)+"font: normal 10pt arial;"+Chr(34)+"><a href="+Chr(34)+"#ebayphotohosting"+Chr(34)+">Größeres Bild</a></span></td></tr></table></td></tr></table></td><td width="+Chr(34)+"6"+Chr(34)+"><img src="+Chr(34)+"http://pics.ebaystatic.com/aw/pics/s.gif"+Chr(34)+" width="+Chr(34)+"6"+Chr(34)+" height="+Chr(34)+"1"+Chr(34)+"></td></tr></table></td><td valign="+Chr(34)+"top"+Chr(34)+" width="+Chr(34)+"100%"+Chr(34)+"><div id="+Chr(34)+"FastVIPDetails+Chr(34)+""><table width="+Chr(34)+"100%+Chr(34)+"" cellpadding="+Chr(34)+"1"+Chr(34)+" cellspacing="+Chr(34)+"4"+Chr(34)+"><tr><td colspan="+Chr(34)+"4"+Chr(34)+"><img src="+Chr(34)+"+Chr(34)+"http://pics.ebaystatic.com/aw/pics/s.gif+Chr(34)+"" width="+Chr(34)+"1"+Chr(34)+" height="+Chr(34)+"5"+Chr(34)+"></td></tr><tr><td align="+Chr(34)+"left"+Chr(34)+" nowrap width="+Chr(34)+"25%"+Chr(34)+"><span id="+Chr(34)+"DetailsCurrentBidText+Chr(34)+"" class="+Chr(34)+"titlePurchase"+Chr(34)+">Aktuelles Gebot:</span></td><td nowrap><span id="+Chr(34)+"DetailsCurrentBidValue+Chr(34)+"" class="+Chr(34)+"sectiontitle+Chr(34)+""><b>
Repeat
s$ = ReadString(0)
s$ = ReplaceString(s$, Chr(9), "")
If Mid(s$, 1, Len("</td><td class="+Chr(34)+"boldsmall"+Chr(34)+" width="+Chr(34)+"60%"+Chr(34)+">")) = "</td><td class="+Chr(34)+"boldsmall"+Chr(34)+" width="+Chr(34)+"60%"+Chr(34)+">"
s$ = ReplaceString(s$, "</td><td class="+Chr(34)+"boldsmall"+Chr(34)+" width="+Chr(34)+"60%"+Chr(34)+">", "")
s$ = ReplaceString(s$, "<span class="+Chr(34)+"normalsmall"+Chr(34)+"></span></td></tr><tr><td valign="+Chr(34)+"top"+Chr(34)+" nowrap class="+Chr(34)+"normalsmall"+Chr(34)+" style="+Chr(34)+"padding-top:13px;"+Chr(34)+">", "")
Debug "Aktueller Preis: "+s$
EndIf
ms$ = "//--></script><tr><td colspan="+Chr(34)+"4"+Chr(34)+" bgcolor="+Chr(34)+"#ffffff"+Chr(34)+" style="+Chr(34)+"padding:30px 0 5px 5px"+Chr(34)+"><span style="+Chr(34)+"font: normal 10pt arial;"+Chr(34)+"><a href="+Chr(34)+"#ebayphotohosting"+Chr(34)+">Größeres Bild</a></span></td></tr></table></td></tr></table></td><td width="+Chr(34)+"6"+Chr(34)+"><img src="+Chr(34)+"http://pics.ebaystatic.com/aw/pics/s.gif"+Chr(34)+" width="+Chr(34)+"6"+Chr(34)+" height="+Chr(34)+"1"+Chr(34)+"></td></tr></table></td><td valign="+Chr(34)+"top"+Chr(34)+" width="+Chr(34)+"100%"+Chr(34)+"><div id="+Chr(34)+"FastVIPDetails"+Chr(34)+"><table width="+Chr(34)+"100%"+Chr(34)+" cellpadding="+Chr(34)+"1"+Chr(34)+" cellspacing="+Chr(34)+"4"+Chr(34)+"><tr><td colspan="+Chr(34)+"4"+Chr(34)+"><img src="+Chr(34)+"http://pics.ebaystatic.com/aw/pics/s.gif"+Chr(34)+" width="+Chr(34)+"1"+Chr(34)+" height="+Chr(34)+"5"+Chr(34)+"></td></tr><tr><td align="+Chr(34)+"left"+Chr(34)+" nowrap width="+Chr(34)+"25%"+Chr(34)+"><span id="+Chr(34)+"DetailsCurrentBidText"+Chr(34)+" class="+Chr(34)+"titlePurchase"+Chr(34)+">Aktuelles Gebot:</span></td><td nowrap><span id="+Chr(34)+"DetailsCurrentBidValue"+Chr(34)+" class="+Chr(34)+"sectiontitle"+Chr(34)+"><b>"
If Mid(s$, 1, Len(ms$)) = ms$
s$ = ReplaceString(s$, ms$, "")
For i = 1 To Len(s$)
c$ = Mid(s$, i, 1)
If a = 3
Goto raus
Else
t$ + c$
EndIf
If a = 1 Or a = 2
a + 1
EndIf
If c$ = ","
a = 1
EndIf
Next i
raus:
Debug "Aktueller Preis: "+t$
EndIf
Until Eof(0) <> 0
CloseFile(0)
EndIf
Verfasst: 20.03.2008 11:36
von Fox
hey

danke für die schnelle antwort... Super der code
noch ne frage
wenn ich den preis in die zwischenablage machen will, mach ich das ja mit dem code:
aber dann wenn ich es wo einfüge gibt er immer nur Aktuelles Gebot: aus und nicht den preis dazu
was passt nicht?
Danke dir
Verfasst: 20.03.2008 11:39
von PMTheQuick
Fox hat geschrieben:hey

danke für die schnelle antwort... Super der code
noch ne frage
wenn ich den preis in die zwischenablage machen will, mach ich das ja mit dem code:
aber dann wenn ich es wo einfüge gibt er immer nur Aktuelles Gebot: aus und nicht den preis dazu
was passt nicht?
Danke dir
So gehts perfekt:
Code: Alles auswählen
InitNetwork()
ConnectionID = OpenNetworkConnection("cgi.ebay.de", 80)
EbayAngebot$ = "http://cgi.ebay.de/Nokia-6680-Handy-256MB-Speicherkarte-Cover_W0QQitemZ250226956408QQihZ015QQcategoryZ115579QQssPageNameZWDVWQQrdZ1QQcmdZViewItem"
; EbayAngebot$ = "http://cgi.ebay.de/Alfa-Romeo-2000-Spider-Bj-77_W0QQitemZ250224389117QQihZ015QQcategoryZ9834QQssPageNameZWDVWQQrdZ1QQcmdZViewItem"
; EbayAngebot$ = "http://cgi.ebay.de/Alfa-146-ti-2l-16v-mit-klima-aus-1-hand-scheckheft-145_W0QQitemZ220213942594QQihZ012QQcategoryZ9834QQssPageNameZWDVWQQrdZ1QQcmdZViewItem"
If ConnectionID
com$="GET "+EbayAngebot$+" HTTP/1.1"+Chr(13)+Chr(10)
com$=com$+"Accept: */*"+Chr(13)+Chr(10)
com$=com$+"Accept: text/html"+Chr(13)+Chr(10)
com$=com$+"Host: "+host$+Chr(13)+Chr(10)
com$=com$+"User-Agent: Ebay CVS Parser"+Chr(13)+Chr(10)
com$=com$+Chr(13)+Chr(10)
Res = SendNetworkData(ConnectionID,@com$,Len(com$))
time = GetTickCount_()
CreateFile(0, "site.txt")
Repeat
Delay(10)
Result = NetworkClientEvent(ConnectionID)
If Result = 2
Content$ = Space(14500)
ReceiveNetworkData(ConnectionID,@Content$,14500)
time = GetTickCount_()
WriteString(0, Content$)
ElseIf Result = 0
If GetTickCount_()-time > 3000
Ok = 1
EndIf
EndIf
Until Ok = 1
CloseNetworkConnection(ConnectionID)
CloseFile(0)
ReadFile(0, "site.txt")
;//--></script><tr><td colspan="+Chr(34)+"4"+Chr(34)+" bgcolor="+Chr(34)+"#ffffff"+Chr(34)+" style="+Chr(34)+"padding:30px 0 5px 5px"+Chr(34)+"><span style="+Chr(34)+"font: normal 10pt arial;"+Chr(34)+"><a href="+Chr(34)+"#ebayphotohosting"+Chr(34)+">Größeres Bild</a></span></td></tr></table></td></tr></table></td><td width="+Chr(34)+"6"+Chr(34)+"><img src="+Chr(34)+"http://pics.ebaystatic.com/aw/pics/s.gif"+Chr(34)+" width="+Chr(34)+"6"+Chr(34)+" height="+Chr(34)+"1"+Chr(34)+"></td></tr></table></td><td valign="+Chr(34)+"top"+Chr(34)+" width="+Chr(34)+"100%"+Chr(34)+"><div id="+Chr(34)+"FastVIPDetails+Chr(34)+""><table width="+Chr(34)+"100%+Chr(34)+"" cellpadding="+Chr(34)+"1"+Chr(34)+" cellspacing="+Chr(34)+"4"+Chr(34)+"><tr><td colspan="+Chr(34)+"4"+Chr(34)+"><img src="+Chr(34)+"+Chr(34)+"http://pics.ebaystatic.com/aw/pics/s.gif+Chr(34)+"" width="+Chr(34)+"1"+Chr(34)+" height="+Chr(34)+"5"+Chr(34)+"></td></tr><tr><td align="+Chr(34)+"left"+Chr(34)+" nowrap width="+Chr(34)+"25%"+Chr(34)+"><span id="+Chr(34)+"DetailsCurrentBidText+Chr(34)+"" class="+Chr(34)+"titlePurchase"+Chr(34)+">Aktuelles Gebot:</span></td><td nowrap><span id="+Chr(34)+"DetailsCurrentBidValue+Chr(34)+"" class="+Chr(34)+"sectiontitle+Chr(34)+""><b>
Repeat
s$ = ReadString(0)
s$ = ReplaceString(s$, Chr(9), "")
If Mid(s$, 1, Len("</td><td class="+Chr(34)+"boldsmall"+Chr(34)+" width="+Chr(34)+"60%"+Chr(34)+">")) = "</td><td class="+Chr(34)+"boldsmall"+Chr(34)+" width="+Chr(34)+"60%"+Chr(34)+">"
s$ = ReplaceString(s$, "</td><td class="+Chr(34)+"boldsmall"+Chr(34)+" width="+Chr(34)+"60%"+Chr(34)+">", "")
s$ = ReplaceString(s$, "<span class="+Chr(34)+"normalsmall"+Chr(34)+"></span></td></tr><tr><td valign="+Chr(34)+"top"+Chr(34)+" nowrap class="+Chr(34)+"normalsmall"+Chr(34)+" style="+Chr(34)+"padding-top:13px;"+Chr(34)+">", "")
SetClipboardText("Aktueller Preis: "+s$)
EndIf
ms$ = "//--></script><tr><td colspan="+Chr(34)+"4"+Chr(34)+" bgcolor="+Chr(34)+"#ffffff"+Chr(34)+" style="+Chr(34)+"padding:30px 0 5px 5px"+Chr(34)+"><span style="+Chr(34)+"font: normal 10pt arial;"+Chr(34)+"><a href="+Chr(34)+"#ebayphotohosting"+Chr(34)+">Größeres Bild</a></span></td></tr></table></td></tr></table></td><td width="+Chr(34)+"6"+Chr(34)+"><img src="+Chr(34)+"http://pics.ebaystatic.com/aw/pics/s.gif"+Chr(34)+" width="+Chr(34)+"6"+Chr(34)+" height="+Chr(34)+"1"+Chr(34)+"></td></tr></table></td><td valign="+Chr(34)+"top"+Chr(34)+" width="+Chr(34)+"100%"+Chr(34)+"><div id="+Chr(34)+"FastVIPDetails"+Chr(34)+"><table width="+Chr(34)+"100%"+Chr(34)+" cellpadding="+Chr(34)+"1"+Chr(34)+" cellspacing="+Chr(34)+"4"+Chr(34)+"><tr><td colspan="+Chr(34)+"4"+Chr(34)+"><img src="+Chr(34)+"http://pics.ebaystatic.com/aw/pics/s.gif"+Chr(34)+" width="+Chr(34)+"1"+Chr(34)+" height="+Chr(34)+"5"+Chr(34)+"></td></tr><tr><td align="+Chr(34)+"left"+Chr(34)+" nowrap width="+Chr(34)+"25%"+Chr(34)+"><span id="+Chr(34)+"DetailsCurrentBidText"+Chr(34)+" class="+Chr(34)+"titlePurchase"+Chr(34)+">Aktuelles Gebot:</span></td><td nowrap><span id="+Chr(34)+"DetailsCurrentBidValue"+Chr(34)+" class="+Chr(34)+"sectiontitle"+Chr(34)+"><b>"
If Mid(s$, 1, Len(ms$)) = ms$
s$ = ReplaceString(s$, ms$, "")
For i = 1 To Len(s$)
c$ = Mid(s$, i, 1)
If a = 3
Goto raus
Else
t$ + c$
EndIf
If a = 1 Or a = 2
a + 1
EndIf
If c$ = ","
a = 1
EndIf
Next i
raus:
SetClipboardText("Aktueller Preis: "+t$)
EndIf
Until Eof(0) <> 0
CloseFile(0)
EndIf
Verfasst: 26.03.2008 12:40
von Fox
hi.. danke hat super geklappt
Verfasst: 26.03.2008 14:49
von AND51
> anstrengensten war das Parsen der Strings
Kein Wunder.
Wenn du PB 4.20 benutzt, kannst du ganze bequem die Regulären Ausdrücke (RegExp) benutzen, anstatt nach der "Steinzeitmethode" mit
FindString(),
ReplaceString() und
Mid() zu handeln.
Und warum lädst du die Seite manuell runter? Ginge doch auch mit der API
URLDownloadToFile_() aber das Runterladen geht noch einfacher:
Nämlich mit
ReceiveHTTPFile().
Alles PB-native Befehle.

Verfasst: 23.05.2009 21:57
von saimen
kann es sein dass wenn ich den Quellcode mit #PB_Web_HtmlCode auslese, nicht der gesamte Code ausgelesen wird sondern nur bis zu einer bestimmten Zeichenanzahl?
Hab das nämlich bei einer "automatisch generierten" seite probiert, und kann nie den gesamten html Quellcode auslesen. Da die seite selbst generiert wird kann ich sie auch nicht speichern...
Was kann ich da machen um an den ganzen Code ran zu kommen?
Verfasst: 23.05.2009 22:05
von Marc-21
@And51
Kannst du das genauer erklären das mit dem RegExp in der hilfe finde ich das so nicht danke.
Verfasst: 23.05.2009 22:12
von Andesdaf
@Marc-21: Du weißt aber schon, dass der Thread ein jahr alt ist?
>Kannst du das genauer erklären das mit dem RegExp in der hilfe finde ich das so nicht danke.
RegularExpressions.