[python] httplib a práce se sms bránou
Martin Stiborský
martin.stiborsky na gmail.com
Pondělí Prosinec 15 14:33:19 CET 2008
Zdravím.
Pokouším se odeslat přes skript esemesku do sítě O2. Nedaří se, po
odeslání mi kód vypíše 302 Found, neměl bych spíš vidět 200 OK ?
Koukám do logu z wiresharku při odeslání sms pomocí skriptu a přímo z
webu, ale asi mi něco uniká, možná zapomínám posílat nějakou hlavičku,
která je důležitá, nebo nevím. Nebo mám nějakou faktickou chybu v kódu
?
Chtěl jsem to celé udělat pomocí urllib(2), akorát se nedařilo, tak
jsem zkusil httplib.
# -*- coding: utf-8 -*-
from BeautifulSoup import BeautifulSoup
import urllib
import urllib2
import httplib
cislo = "telefonni cislo"
def getHTML(conn):
conn.request("GET", "/")
response = conn.getresponse()
return response.read()
def findAndDownloadCaptcha(html):
soup = BeautifulSoup(html)
image = soup.findAll('img', alt=u"kód")[0]
imageSrc = image.attrMap['src']
target = urllib.urlopen("%s%s" % ("http://sms.1188.cz", imageSrc))
data = target.read()
target.close()
out = file("captcha", "w")
out.write(data)
out.close
conn = httplib.HTTPConnection("sms.1188.cz:80")
html = getHTML(conn)
findAndDownloadCaptcha(html)
captcha = raw_input("Kod:")
headers = {'User-Agent' : 'Mozilla/5.0 (X11; U; Linux i686; en-US;
rv:1.9.0.4) Gecko/2008111922 GranParadiso/3.0.4',
'Referer' : 'http://sms.1188.cz/',
"Content-type": "application/x-www-form-urlencoded"
}
#values = {'adress' : '732653452',
#'code' : captcha,
#'replyEmail' : '',
#'text' : 'ahoj :)',
#'send' : 'ODESLAT' }
#data = urllib.urlencode(values)
data = "adress=%s&code=%s&replyEmail=&text=Ahoj&send=ODESLAT" % (cislo, captcha)
conn.request("POST", "/", data, headers)
response = conn.getresponse()
print response.status, response.reason
--
S pozdravem
Martin Stiborský
Jabber: stibi na njs.netlab.cz
ICQ: 224-065-849
Další informace o konferenci Python