Kein Suchergebnis - wieso?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
DR4GON
User
Beiträge: 3
Registriert: Montag 25. Juli 2005, 08:44

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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
DR4GON
User
Beiträge: 3
Registriert: Montag 25. Juli 2005, 08:44

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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten