#!/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()
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