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" <[email protected]> > To: [email protected] > Subject: Re: [python] python http > Message-ID: <[email protected]> > 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:[email protected]] > >Komu: [email protected] > >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() _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
