Seite 1 von 1

Daten mit einem python programm an eine Webseite schicken.

Verfasst: Montag 26. Oktober 2009, 17:07
von pinky
Hallo,

ich habe hier eine ganz einfache Webseite mit einem Formular in das man eine Zeichenkette eingeben kann:

Code: Alles auswählen

<p><form action="/foo/bar" method="post">
<p>Text: <input name="query" type="text" size ="30"></p>
<p><input type="submit" value="textdata"></p>
</form></p>
Wenn ich im Browser jetzt einen Text eingebe, dann komme ich auch die Unterseite /foo/bar auf der mein eingegebener texte einfach wieder ausgegeben wirdl.

Diese Aufruf würde ich jetzt gerne über ein Python-Skript machen und die Ausgabe in der Konsole ausgeben.

Mein Skript sieht so aus:

Code: Alles auswählen

import urllib
import urllib2
import sys

url = 'http://localhost:8080/request'

values = {
  'query' : "Das ist mein Text der wieder ausgegeben werden soll"
  }

data = urllib.urlencode(values)

req = urllib2.Request(url, data)
response = urllib2.urlopen(req)

the_page = response.read()

print the_page
Wenn ich jetzt mein Skript aufrufe, dann bekomme ich diesre Fehlermeldung:

Code: Alles auswählen

$ python meinskript.py 
Traceback (most recent call last):
  File "../meinskript.py", line 15, in <module>
    response = urllib2.urlopen(req)
  File "/usr/lib/python2.5/urllib2.py", line 124, in urlopen
    return _opener.open(url, data)
  File "/usr/lib/python2.5/urllib2.py", line 387, in open
    response = meth(req, response)
  File "/usr/lib/python2.5/urllib2.py", line 498, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.5/urllib2.py", line 425, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.5/urllib2.py", line 360, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.5/urllib2.py", line 506, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 405: Method Not Allowed
$
Ich bin heute schon den ganzen Tag am verzweifeln, da es vor einiger Zeit mehr oder weniger genau so funktioniert hat.

Hat hier vielleicht jemand eine Idee was ich falsch mache?

Danke!

Re: Daten mit einem python programm an eine Webseite schicke

Verfasst: Montag 26. Oktober 2009, 22:43
von tordmor
pinky hat geschrieben:

Code: Alles auswählen

<form action="/foo/bar" method="post">
Da action="/foo/bar" ist, musst Du auch die Daten an die Seite /foo/bar schicken und nicht an /request:

Code: Alles auswählen

url = 'http://localhost:8080/foo/bar'