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 _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
