예제 #1
0
def get_info(username: str, password: str, session: Optional[Session] = None):
    if session is None:
        session = Session()
        session.headers['User-Agent'] = CONFIG['USER_AGENT']
    r = session.get("https://secure.etecsa.net:8443/")
    form = get_inputs(r)
    action = "https://secure.etecsa.net:8443/EtecsaQueryServlet"
    form['username'] = username
    form['password'] = password
    r = session.post(action, form)
    sel = Selector(r.text)
    exp_node = sel.re_first(verif_pattern)
    if exp_node is None:
        return "**invalid credentials**"
    res = {}
    table = sel.css('table')[0]
    table = table.css('td')
    for i, j in zip(table.css('td')[::2], table.css('td')[1::2]):
        if verif_pattern.search(i.css("::text").get().strip()):
            res['expiration'] = j.css("::text").get().strip()
        if credit.search(i.css("::text").get().strip()):
            res['credit'] = j.css("::text").get().strip()
    cr = float(res['credit'].split(' ')[0])
    res['time_left'] = cr / CONFIG['TIME_CONVERSION_CONSTANT']
    return res
예제 #2
0
def verify(username: str, password: str, session: Optional[Session] = None):
    if session is None:
        session = Session()
        session.headers['User-Agent'] = CONFIG['USER_AGENT']
    r = session.get("https://secure.etecsa.net:8443/")

    form = get_inputs(r)
    action = "https://secure.etecsa.net:8443/EtecsaQueryServlet"
    form['username'] = username
    form['password'] = password
    r = session.post(action, form)
    sel = Selector(r.text)
    exp_node = sel.re_first(verif_pattern)
    if exp_node is None:
        return False
    return True
예제 #3
0
 def user_data(self):
     response = requests.get('https://wikium.ru/statistic/today',
                             headers=self.headers)
     sel = Selector(text=response.text)
     return json.loads(sel.re_first(r'carrotquest\.identify\((.*?)\);'))