Seite 1 von 1

Kein Suchergebnis - wieso?

Verfasst: Montag 25. Juli 2005, 08:54
von DR4GON
Guten Morgen zusammen,

ich versuche derzeit Zugang zur Internet Seite "http://optionsscheine.onvista.de/suche/ ... 0019350864" zu bekommen. Allerdings geht das nicht über den "üblichen" Weg ( urllib.urlopen('URL') ). Hier bekomme ich einfach gar keine Rückmeldung - also einen leeren Output. Alle übrigen Seiten, die ich bisher ausprobiert habe konnten geladen werden, nur diese nicht. Ich spekuliere, dass es an der Suche liegt, da diese URL eine Suche auslöst und demnach einen dynamischen Hauch hat.

Kann mir jemand verraten wie ich das Problem beheben kann?

Danke schonmal

Verfasst: Montag 25. Juli 2005, 13:39
von jens
Mit http://www.python-forum.de/viewtopic.php?t=3615 sieht man das der Server "400 Bad Request" zurück schickt...
Vielleicht wird einfach nur der UserAgent abgefragt ! Muß aber erstmal nachsehen, wie man den ändern kann...

Verfasst: Montag 25. Juli 2005, 14:01
von jens
Per POST geht's... Hab mal die Teile im Header auskommentiert, ohne die der Request auch Funktioniert:

Code: Alles auswählen


import sys,socket

host = "optionsscheine.onvista.de"
port = 80
url = "/snapshot.html"
parameter = "ID_OSI=11354757&SEARCH_VALUE=CH0019350864"

print "Connecte zu %s:%s..." % (host, port),
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
print "OK"

request  = "POST %s HTTP/1.1\r\n" % url
#~ request += "Accept: text/html, image/jpeg, image/gif, */*\r\n"
#~ request += "Accept-Charset: ISO-8859-1\r\n"
#~ request += "Referrer: http://www.bolege.de/whoiam/\r\n"
#~ request += "User-Agent: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.10) Gecko/20050717 Firefox/1.0.6\r\n"
request += "Host: %s\r\n" % host
request += "Content-Length: %s\r\n\r\n""" % len(parameter)
request += "%s\r\n" % parameter

print "Send Request '%s'..." % request.encode("String_Escape"),
s.send( request )
print "OK"

print "Read data...",
data = s.recv(1024)
print "OK"

print "_"*80
print data.encode("String_Escape")
print "_"*80
print data

s.close()
Es wird aber bestimmt auch mit dem normalen urllib2 gehen. Ein Beispiel dazu hab ich hier http://www.python-forum.de/viewtopic.php?p=21292#21292 gefunden...

Verfasst: Montag 25. Juli 2005, 15:02
von Gast
Vielen Dank schonmal für deine Hilfe. Allerdings bringt mich das noch nicht wirklich weiter nach vorn, weil ich die Seite "http://optionsscheine.onvista.de/snapsh ... 0019350864" auch über den normalen urllib erreichen kann.

Mir geht es darum dynamisch den SEARCH_VALUE zu bestimmten. Das geht aber leider nur über die von mir genannte URL, aus der dann durch einen internen Suchprozess die von dir gepostete wird. Wenn das etwas zu wirr beschrieben ist musst du kurz Bescheid sagen. Irgendwie schwierig zu beschreiben um was es geht. Dieses ID_OSI wird vom System selber vergeben und stellt wohl ne Art internen Schlüssel dar, so dass ich nicht einfach den String ( CH0019350864 ) ändern kann um ein anderes Ergebnis zu bekommen.

Wäre es vielleicht auch möglich direkt über die Seite "http://www.onvista.de/suche.html" zu gehen bzw. kann man in Input Feldern eine Eingabe machen und sich dann die Ergebnisseite anzeigen lassen.

Grüße

DR4GON

Verfasst: Montag 25. Juli 2005, 17:42
von jens
Anonymous hat geschrieben:Wäre es vielleicht auch möglich direkt über die Seite "http://www.onvista.de/suche.html" zu gehen
Natürlich wird das gehen... Mußt halt im Quellentext der Seite mal die HTML-Formularfelder analysieren und nachsehen, welche Variablen an welche URL geschickt wird... Dann kannst du das ganze mit urllib nachbauen...

Verfasst: Dienstag 26. Juli 2005, 07:57
von DR4GON

Code: Alles auswählen

<form action="suche.html" method="POST"><tr><td><br /> Direkte Eingabe von WKN, ISIN oder Name des Wertpapiers: </td></tr><tr><td valign="top"><table cellpadding="0" cellspacing="0"><tr><td>   <input name="SEARCH_VALUE" value="" size="20" />   </td><td><input type="image" src="http://i.i4o.de/bt/such_start.gif" /></td></tr></table><br /><br /></td></tr></form>
... das ist wohl der relevante Imput Part inklusive Formular. Allerdings sagt es sich so einfach das es kein Problem wäre dann auch über urllib zu gehen. Ich bräuchte da ehrlich gesagt etwas Unterstützung, weil ich erst seit nen paar Wochen mit Python was zu tun habe, demnach also noch nicht so drin bin.

Wüsste nun nicht was ich tun sollte, um über Pyton eine Eingabe im Feld SEARCH_VALUE zu machen.

Grüße

DR4GON

Verfasst: Dienstag 26. Juli 2005, 09:17
von jens
such einfach mal im Forum nach "urllib" und "GET" und/oder "POST"
Bei der Suche allerdings immer auf "Nach allen Wörtern suchen" umstellen :wink:

Ich denke da findest du einige Beispiele...