[AsteriskBrasil] Instalar Module ClientCookie no CentOS
Oséias Ferreira
ferreira.oseias em gmail.com
Quinta Agosto 5 16:26:32 BRT 2010
Em 1 de agosto de 2010 18:40, sergio <sergio em inbox.com> escreveu:
> Eu também não consegui colocar pra funcionar nem o script em perl nem o script em python.
>
>> -----Original Message-----
>> From: gst.freitas em gmail.com
>> Sent: Sun, 1 Aug 2010 15:49:44 -0300
>> To: asteriskbrasil em listas.asteriskbrasil.org
>> Subject: [AsteriskBrasil] Instalar Module ClientCookie no CentOS
>>
>> Galera,
>>
>> Estou tentando usar este artigo do amigo Eder Sousa sobre
>> portabilidade.. porem acusa o seguinte
>> erro
>>
>> Traceback (most recent call last):
>> File "send.py", line 5, in ?
>> import ClientCookie
>> ImportError: No module named ClientCookie
>>
>> Creio que falta o modulo ClientCookie.
>>
>> Tentei instalar via yum do centos e nao consegui.
>>
>> Alguem tem alguma ideia como fazer..
>>
>> Obrigado
>>
------Corta-------
#!/usr/bin/python
import re
import cookielib
import commands
import sys
import os
import re
import urllib2
import urllib
inc = 0
MaxTentativas = 15
tel=sys.argv[1]
ddd = tel[:2]
NUM = tel[2:10]
numero_formatado = NUM[0:4]+"."+NUM[4:8]
telefone = "("+ddd+")"+numero_formatado
while inc < MaxTentativas:
inc = inc + 1
url = "http://consultanumero.abr.net.br:8080/consultanumero/consulta/consultaSituacaoAtual!carregar.action"
req = urllib2.Request(url)
req.add_header('Referer', url)
cj = cookielib.MozillaCookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
r = urllib2.urlopen(req).read()
cj.save("infer", ignore_discard=True, ignore_expires=True)
find = re.search('jcid=(\w+)', r)
cod = find.group(1)
r = urllib2.urlopen('http://consultanumero.abr.net.br:8080/consultanumero/jcaptcha.jpg?jcid='+cod)
fp = open('Captcha.jpg','w')
fp.write(r.read())
fp.close()
comando = commands.getoutput('djpeg -pnm Captcha.jpg | gocr -C
a-zA-Z0-9 -m 2 -a 90 -d 2')
rmspace = comando.replace(' ', '')
rmreturn = rmspace.replace('\n', '')
rmunderline = rmreturn.replace('_','')
res = re.search('([a-zA-Z0-9]+)', rmunderline)
captcha = res.group(1)
cj = cookielib.MozillaCookieJar()
cj.load("infer", ignore_discard=True, ignore_expires=True)
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
#pagina = opener.open('http://consultanumero.abr.net.br:8080/consultanumero/consulta/consultaSituacaoAtual!carregar.action?nmTelefone='+telefone+'&j_captcha_response='+captcha+'&jcid='+cod+'&method%3Aconsultar=Consultar').read()
pagina = opener.open(url+'?nmTelefone='+telefone+'&j_captcha_response='+captcha+'&jcid='+cod+'&method%3Aconsultar=Consultar').read()
if "gridselecionado" in pagina:
find = re.findall('<td>(.*)</td>', pagina)
print find[7]
print find[8]
sys.exit()
------Fim---------
Atente que você precisa ter instalado:
1- as bibliotecas python
2- djpeg
3- gocr
No diretório do script crie um subdiretorio db.
Dentro do db; db.lst
mkdir db
touch db/db.lst
Lembrando que o python lê as indentações. Estas deverão existir após o
while e o if.
Basicamente eu apenas mudei a biblioteca original do script. O
original é o ClientCookie.
Eu mudei para o cookielib, que é o nome que o código recebeu para o python 2.6.
abraço.
--
Oséias Ferreira.
PS: quem quiser fazer o download do script http://pastebin.com/zbnyEJ2b
Mais detalhes sobre a lista de discussão AsteriskBrasil