[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