Esempio n. 1
0
#!/usr/bin/env python
#-*- coding: UTF-8 -*-

from litebrowser import Browser
from fileinput import input
import urllib

BASE_URL = ("http://translate.google.com/translate_a/t?"
    "client=t&sl=auto&tl=es&hl=es-419&sc=2&ie=UTF-8&oe=UTF-8&"
    "uptl=es&alttl=en&oc=1&otf=2&ssel=0&tsel=0&q=%s")
b = Browser()
b.go("http://translate.google.com")

for line in input():
    text = urllib.quote(line)
    b.go(BASE_URL % text)
    print b.get_html()
Esempio n. 2
0
class Claro:
    def __init__(self, account):
        self.account = account
        self.browser = Browser()


    def login(self):
        form = self.browser.get_forms("https://individuos.claro.com.ar")[1]
        form["login"] = self.account[0]
        form["password"] = self.account[1]
        form.submit()


    def get_saldos(self):
        saldos = {}
        html = self.browser.get_html("web/guest/saldos-y-consumos1")
        regexs = {
            "Abono fijo": r'''
                (?xs)Saldo\ del\ Abono:.*?\$
                (?P<saldo> (?:\d+,)?\d+ ).*?Llevás\ consumidos\ \$
                (?P<consumido> (?:\d+,)?\d+ ).*?
                (?P<total> \d*,\d* ).*?Per.+?odo\ actual.*?
                (?P<vencimiento> \d+/\d+/\d+ )
                ''',
            "Paquete de datos": r'''
                (?xs)Saldo\ de\ Paquetes.*?Te\ quedan\ 
                (?P<saldo> \d+? )\ MB\ de\ tu\ paquete\ de\ 
                (?P<total> \d+ )\ MB\..*?Vence\ el\ 
                (?P<vencimiento> \d+/\d+/\d+ )
                ''',
            "Paquete de sms": r'''
                (?xs).*?Te\ quedan\ 
                (?P<saldo> \d+ )\ SMS\ de\ tu\ paquete\ de\ 
                (?P<total> \d+ )\ SMS\..*?Vence\ el\ +
                (?P<vencimiento> \d+/\d+/\d+ )
                ''',
            "SMS Promocionales": r'''
                (?xs)SMS\ Promocionales.*?Tenés\ .*?
                (?P<saldo> \d+ ).*?SMS\ disponibles\ hasta\ el\ 
                (?P<vencimiento> \d+/\d+/\d+ )
                ''',
            "Crédito prepago congelado": r'''
                (?xs)Crédito\ de\ Recarga.*?Crédito\ Congelado.*?
                    Saldo.*?Vencimiento.*?\$
                (?P<saldo> \d+,\d+ ).*?
                (?P<vencimiento> \d+/\d+/\d+ ).*?Última\ recarga.*?
                (?P<ultima_recarga> \d+/\d+/\d+ )
                ''',
            "Crédito prepago vigente": r'''
                (?xs)Crédito\ de\ Recarga.*?Recarga.*?\$
                (?P<saldo> \d+,\d+ ).*?
                (?P<vencimiento> \d+/\d+/\d+ )
                ''',
            "Crédito prepago promocional": r'''
                (?xs)Crédito\ de\ Recarga.*?Promocional.*?\$
                (?P<saldo> \d+,\d+ ).*?
                (?P<vencimiento> \d+/\d+/\d+ )
                ''',
            "Crédito de recarga": r'''
                (?xs)Crédito\ de\ Recarga.*?Última\ recarga.*?
                (?P<ultima_recarga> \d+/\d+/\d+ )
                '''
        }
        for title, regex in regexs.items():
            match = re.search(regex, html)
            if match:
                saldos[title] = match.groupdict()
        return saldos


    def get_circulo_opciones(self):
        self.browser.go("web/guest/consultar-claro-club")
        self.browser.get_forms()[0].submit()
        soup = BeautifulSoup(self.browser.get_html())
        opciones = []
        regex = re.compile(r"""(?xs) <tr>\ <td.*?>
            (?P<descripcion>(?P<cantidad>\d+).*?)  </td>\ <td.*?>
            (?P<puntos>\d+)                        .*?</td>.*?goSubmit\('
            (?P<codigo>\d+)                        '\)"""
        )
        for table in soup("table", {"class":"tabla tablaGris"}):
            for row in table("tr"):
                rawtext = row.__str__()
                if "goSubmit(" in rawtext and "SMS" in rawtext:
                    match = regex.match(rawtext)
                    opciones.append(match.groupdict())
        return opciones