示例#1
0
def copy():
    with open('/app/resultados/dados/db.csv', 'r') as f:
        for line in f:
            v = line.split(',')
            r = Resultado()
            r.data = datetime.date(*[int(s) for s in v[1].split('-')])
            r.turno = str(v[2])
            r.premio_1 = str(v[3])
            r.premio_2 = str(v[4])
            r.premio_3 = str(v[5])
            r.premio_4 = str(v[6])
            r.premio_5 = str(v[7])
            r.premio_6 = str(v[8])
            r.premio_7 = str(v[9])
            r.premio_8 = str(v[10])
            r.premio_9 = str(v[11])
            r.premio_10 = str(v[12][:4])
            r.save()
示例#2
0
def craw(data_i, data_f=None):
    if data_f is None:
        data_f = data_i
    RESULTADO_RE = re.compile(r'<div class="numeros">[^0-9]*?([0-9]*?)[^0-9]*?</div>')
    DATA_RE = re.compile(r'(\d{1,})')

    URL_BASE = 'http://www.lotece.com.br/v2/?page_id=70&data='

    ONE_DAY = datetime.timedelta(1)

    # gero os date
    data_inicial = datetime.date(*[int(s) for s in DATA_RE.findall(data_i)][::-1])
    data_final = datetime.date(*[int(s) for s in DATA_RE.findall(data_f)][::-1])

    data = data_inicial

    todos_resultados = {}
    # itero nos dias
    while data <= data_final:
        # constroi a url
        data_as_string = data.strftime('%d/%m/%Y')    
        url_completa = URL_BASE+data_as_string
        # baixa a pagina
        pagina = urllib2.urlopen(url_completa).read()
        # captura os resultados
        resultados = RESULTADO_RE.findall(pagina)
        # adiciona aos resultados
        todos_resultados[data] = {}
        # nao teve jogo
        if len(resultados) == 0:
            data += ONE_DAY
            continue
        if len(resultados) == 10: # apenas um horario
            todos_resultados[data][2] = resultados
        else: # dois resultados
            todos_resultados[data][1] = resultados[:10]
            # 10:20 e nao 10: pois a pagina carrega tanto resultados do dia quanto do anterior
            todos_resultados[data][2] = resultados[10:20]
        # incremento o dia
        data += ONE_DAY
    print(str(todos_resultados))
    for data in todos_resultados.keys():
        if 2 in todos_resultados[data]:
            r = Resultado.objects.filter(data=data, turno=2)
            if len(r) is 0:
                r = Resultado()
                r.data = data
                r.turno = 2
                r.premio_1 = todos_resultados[data][2][0]
                r.premio_2 = todos_resultados[data][2][1]
                r.premio_3 = todos_resultados[data][2][2]
                r.premio_4 = todos_resultados[data][2][3]
                r.premio_5 = todos_resultados[data][2][4]
                r.premio_6 = todos_resultados[data][2][5]
                r.premio_7 = todos_resultados[data][2][6]
                r.premio_8 = todos_resultados[data][2][7]
                r.premio_9 = todos_resultados[data][2][8]
                r.premio_10 = todos_resultados[data][2][9]
                r.save()
        if 1 in todos_resultados[data]:
            r = Resultado.objects.filter(data=data, turno=1)
            if not len(r) is 0:
                continue
            r = Resultado()
            r.data = data
            r.turno = 1
            r.premio_1 = todos_resultados[data][1][0]
            r.premio_2 = todos_resultados[data][1][1]
            r.premio_3 = todos_resultados[data][1][2]
            r.premio_4 = todos_resultados[data][1][3]
            r.premio_5 = todos_resultados[data][1][4]
            r.premio_6 = todos_resultados[data][1][5]
            r.premio_7 = todos_resultados[data][1][6]
            r.premio_8 = todos_resultados[data][1][7]
            r.premio_9 = todos_resultados[data][1][8]
            r.premio_10 = todos_resultados[data][1][9]
            r.save()