[python] python http

Szkandera.Karel Szkandera.Karel na seznam.cz
Pondělí Únor 8 20:41:45 CET 2010


Děkuji za odpověď, bohužel s tímto content-typem jsem to taky zkoušel, ale nefunguje to. Při tomto zadání mi to vrátí chybovou stránku serveru " v aplikaci nastali neočekávaná chyba [callback/viewstate/mac]. Tento typ chyby vzniká, pokud nesouhlasí kontrolní mechanizmy aplikace zajišťující konzistenci odeslaných a přijatých interních aplikačních dat na klienta a zpět (odeslaná data nesouhlasí s daty přijatými). " 

 
> Message: 2
> Date: Sun, 07 Feb 2010 16:24:24 +0100
> From: "azurIt" <azurit na pobox.sk>
> To: python na py.cz
> Subject: Re: [python] python http
> Message-ID: <67ca4e1343274a448d7268ea31d52e7b na pobox.sk>
> Content-Type: text/plain; charset=utf-8
> 
> len co som to zbezne pozrel, tak pri POST musi byt hlavicka Content-Type
> nastavena na application/x-www-form-urlencoded
> 
> azur
> 
> 
> >-----Pôvodná správa-----
> >Od: Szkandera.Karel [mailto:Szkandera.Karel na seznam.cz]
> >Komu: python na py.cz
> >Predmet: [python] python http
> >
> >
> >Ahoj,
> >
> >chci posilat pomoci pythonu automaticky data do jednoho formulare na webu a
> nasledne odpoved zpracovat. Ikdyz bych rekl, ze by to melo jit, tak mi to
> nevraci kyzeny vysledek. Chtel jsem, aby mi nasledujici skript vratil stranku s
> vyplnenym katastralnim uzemim a kam bych mohl nasledne zadat vyplnit parcelni
> cislo, ale vypada to, jakoby se ten POST nepovedl. Nevite v cem je chyba?
> Dekuji
> >
> >
> >import httplib, urllib, urllib2, cookielib
> >
> >#definice pouzivanych promennych
> >adresa = 'http://m.nahlizenidokn.cuzk.cz/VyberParcelu.aspx'
> >cesta_k_vysledku='d:/python/cuzk/vysledek.html'
> >cislouzemi = '635561'
> >parcela = '1350'
> >headers = {'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
> rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2','Content-type':
> 'application/xhtml+xml'}
> >text = ''
> >
> >
> >#poslani metodou get + ziskani vildacniho kodu
> >conn = httplib.HTTPConnection("m.nahlizenidokn.cuzk.cz")
> >odpoved = conn.request("GET", "/VyberParcelu.aspx", headers=headers)
> >r1 = conn.getresponse()
> >odpoved = r1.read()
> >
> >
> >x = odpoved.find('__VIEWSTATE" value="')
> >y = len('__VIEWSTATE" value="')
> >z = odpoved.find('" />',x+y)
> >state = odpoved[x+y:z]
> >
> >x = odpoved.find('__EVENTVALIDATION" value="')
> >y = len('id="__EVENTVALIDATION" value="')
> >z = odpoved.find('" />',x+y)
> >valid = odpoved[x+y:z]
> >
> >
> >#poslani metodou POST
> >params = urllib.urlencode({'__VIEWSTATE' : state, '__EVENTVALIDATION' : valid
> ,'ctl00$bodyPlaceHolder$vyberKU$btnKU' : 'Vyhledat' ,
> 'ctl00$bodyPlaceHolder$vyberKU$txtKU' : cislouzemi})
> >headers = {'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;
> rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2', 'Content-type':
> 'application/xhtml+xml'}
> >
> >conn.request("POST", "/VyberParcelu.aspx", params, headers)
> >response = conn.getresponse()
> >print response.status, response.reason
> >
> >#kontrolni vytisknuti odpovedi do souboru
> >data = response.read()
> >text=text + str(data)
> >
> >pridat = file(cesta_k_vysledku,'w')
> >pridat.write(text)
> >pridat.close()



Další informace o konferenci Python