Beispiel #1
0
     } else {
         $array["dtUltimaAtualizacao"][$j] = $elemento->value;
         $j++;
     }
 }
 if ($i != $j) {
     exit("A variavel \$i deve ter o mesmo valor que \$j");
 }
 $i = 0;
 //pega os dados(id prefeito OU vereador e id ult atualização) de cada prefeito OU vereador da cidade
 for ($i; $i < $j; $i++) {
     if ($i >= $prox_cand) {
         //monta a url que leva aos dados de cada candidato
         $urlDadosCandidato = "http://divulgacand2012.tse.jus.br/divulgacand2012/mostrarFichaCandidato.action?sqCandidato=" . $array['sqCandidato'][$i] . "&codigoMunicipio=" . $codigoMunicipio . "&dtUltimaAtualizacao=" . $array['dtUltimaAtualizacao'][$i];
         //echo $contCidade." ".$i;
         capturaDadosCandidatos($urlDadosCandidato, $codigoMunicipio, $codigoCargo);
         $arquivo = fopen("control.txt", "w+");
         fwrite($arquivo, $contEstado . " " . $contCidade . " " . ($i + 1));
         fclose($arquivo);
         $arq = fopen("dados1.txt", "a+");
         fwrite($arq, $contEstado . " " . $contCidade . " " . ($i + 1) . " -- For do \$i \n");
         fclose($arq);
     }
 }
 $prox_cand = 0;
 $arquivo = fopen("control.txt", "w+");
 fwrite($arquivo, $contEstado . " " . ($contCidade + 1) . " 0");
 fclose($arquivo);
 $arq = fopen("dados1.txt", "a+");
 fwrite($arq, $contEstado . " " . ($contCidade + 1) . " 0 -- foreach de cidades \n");
 fclose($arq);
function capturaDadosCandidatos($urlDadosCandidato, $codigoMunicipio, $codigoCargo)
{
    echo $urlDadosCandidato . '</br>';
    $urlDadosCandidato = urldecode($urlDadosCandidato);
    //$html = new simple_html_dom;
    //$html->load_file($urlDadosCandidato);
    $html = file_get_html($urlDadosCandidato);
    //cria array onde o indice é o nome do campo do site
    $formulario = array();
    $formulario["Nome para urna eletrônica:"] = "nomeUrna";
    $formulario["Número:"] = "numero";
    $formulario["Nome completo:"] = "nomeCompleto";
    $formulario["Sexo:"] = "sexo";
    $formulario["Data de nascimento:"] = "dataNascimento";
    $formulario["Estado civil:"] = "estadoCivil";
    $formulario["Nacionalidade:"] = "nacionalidade";
    $formulario["Naturalidade:"] = "naturalidade";
    $formulario["Grau de instrução:"] = "grauInstrucao";
    $formulario["Ocupação:"] = "ocupacao";
    $formulario["Partido:"] = "partido";
    $formulario["Coligação:"] = "coligacao";
    $formulario["Composição da coligação:"] = "composicaoColigacao";
    $formulario["No. processo:"] = "nProcesso";
    $formulario["No. protocolo:"] = "nProtocolo";
    $formulario["CNPJ de campanha:"] = "cnpj";
    $formulario["Limite de gastos:"] = "limiteGasto";
    $formulario["Endereço do site do candidato:"] = "endSite";
    //array para guardar os dados
    $dados = array();
    //instancia o vetor
    foreach ($formulario as $form) {
        $dados[$form] = NULL;
    }
    //codigo para capturar a situação e o link da imagem do candidato
    $tabelaSituacao = $html->find("table", 0);
    $texto = $tabelaSituacao->find("td", 4);
    $texto = iconv("ISO-8859-1", "UTF-8", $texto->plaintext);
    $texto = html_entity_decode($texto);
    $dados['situacao'] = limpaPalavra($texto);
    $imagem = $tabelaSituacao->find("img", 0);
    $dados['img'] = 'http://divulgacand2012.tse.jus.br/divulgacand2012/' . $imagem->src;
    //pega a tabela com os dados do prefeito
    $tabelaDados = $tabelaSituacao->find("table", 1);
    //pega a tag com o registro de candidatura e sepera a cidade e o estado
    $cidade_estado = $tabelaDados->find("td", 0);
    $pedacos = explode("(", $cidade_estado->plaintext);
    $tamanho = count($pedacos);
    $pedacos[$tamanho - 1] = str_replace("&nbsp;/&nbsp;", "||", $pedacos[$tamanho - 1]);
    $pedacos[$tamanho - 1] = str_replace(")", "", $pedacos[$tamanho - 1]);
    $pedacos[$tamanho - 1] = iconv("ISO-8859-1", "UTF-8", $pedacos[$tamanho - 1]);
    $pedacos[$tamanho - 1] = html_entity_decode($pedacos[$tamanho - 1]);
    $cidade_estado = explode("||", $pedacos[$tamanho - 1]);
    $dados['cidade_cand'] = limpaPalavra($cidade_estado[0]);
    $dados['estado_cand'] = limpaPalavra($cidade_estado[1]);
    //guarda o cargo do candidato de acordo com o codigo do site
    if ($codigoCargo == 11) {
        $dados['cargo'] = 'Prefeito';
    } else {
        if ($codigoCargo == 13) {
            $dados['cargo'] = 'Vereador';
        } else {
            $dados['cargo'] = 'Vice-prefeito';
        }
    }
    //variavel para contar a posição da tag td
    $dtNumero = 0;
    //pega todas as tags td da tabela dados
    $tds = $tabelaDados->find("td");
    //busca todos os tds dentro tabela com os dados do prefeito e confere a informação de
    //cada um
    foreach ($tds as $td) {
        //pega o conteudo do td
        $label = $td->plaintext;
        //passa de ISO para UTF-8
        $label = iconv("ISO-8859-1", "UTF-8", $label);
        //Tira o html encode
        $label = html_entity_decode($label);
        //caso exista um label no formulario que deve ser pego, pega seu input
        if (isset($formulario[$label])) {
            $output = $tds[$dtNumero + 1]->plaintext;
            $output = str_replace("&nbsp;", " ", $output);
            $output = iconv("ISO-8859-1", "UTF-8", $output);
            $output = html_entity_decode($output);
            $output = limpaPalavra($output);
            $dados[$formulario[$label]] = $output;
        }
        $dtNumero++;
    }
    //confere se o candidato possui site
    if ($dados['endSite'] == "") {
        $dados['endSite'] = NULL;
    }
    //pega a cidade e o estado de nascimento do candidato
    $cid_est_nasc = explode("/", $dados["naturalidade"]);
    $tam = count($cid_est_nasc);
    $dados['estado_nascimento'] = limpaPalavra($cid_est_nasc[$tam - 1]);
    $cidade_nas;
    for ($ind = 0; $ind < $tam - 1; $ind++) {
        $cidade_nas = $cid_est_nasc[$ind] . " ";
    }
    $dados['cidade_nascimento'] = limpaPalavra($cidade_nas);
    //pega a sigla do partido
    $patido = explode('-', $dados['partido']);
    $siglaPartido = $patido[count($patido) - 2];
    $dados['partido'] = limpaPalavra($siglaPartido);
    //array para guardas a descrição sobre o bem do candidato
    $bens = array();
    //variavel para contar os bens do candidato
    $numeroBens = 0;
    //retorna um array mesmo só existindo uma tabela
    $tabelaBens = $html->find('table[id="bemCandidato"]');
    foreach ($tabelaBens as $t1) {
        $bens = $t1->find('tr[class="odd"] , tr[class="even"]');
        foreach ($bens as $t2) {
            $palavra = $t2->find("td", 1)->plaintext;
            $palavra = iconv("ISO-8859-1", "UTF-8", $palavra);
            $palavra = html_entity_decode($palavra);
            $bens["DescricaoBem"][$numeroBens] = $palavra;
            $palavra = $t2->find("td", 2)->plaintext;
            $palavra = iconv("ISO-8859-1", "UTF-8", $palavra);
            $palavra = html_entity_decode($palavra);
            $bens["TipoBem"][$numeroBens] = $palavra;
            $palavra = $t2->find("td", 3)->plaintext;
            $palavra = iconv("ISO-8859-1", "UTF-8", $palavra);
            $palavra = html_entity_decode($palavra);
            $palavra = str_replace(".", "", $palavra);
            $palavra = str_replace(",", ".", $palavra);
            $bens["ValorBem"][$numeroBens] = $palavra;
            $numeroBens++;
        }
    }
    //Chama a função que salva os dados no banco de dados
    salvarDadosNoAllegro($dados, $bens, $numeroBens);
    //função que salva os dados em um arquivo txt
    //salvaDadosTxt($dados, $bens, $numeroBens);
    //Confere se existe vice-prefeito
    $vicesPrefeito = $tabelaDados->find('img[src="img/icones/vice.png"]');
    //Caso exista vice-prefeito, é criado um link que leva ao(s) vice-prefeito e chama
    //a função captura dados novamente para cada vice-prefeito existente
    foreach ($vicesPrefeito as $vicePrefeito) {
        //limpa os dados da tag que contém os dados do vice-prefeio até deixar apenas os numeros
        $vicePrefeito = str_replace('visualizarDadosVice(', '', $vicePrefeito->onclick);
        $vicePrefeito = str_replace(',', '', $vicePrefeito);
        $vicePrefeito = str_replace('"', '', $vicePrefeito);
        $vicePrefeito = str_replace('\'', '', $vicePrefeito);
        $vicePrefeito = str_replace(');', '', $vicePrefeito);
        $espaco = strripos($vicePrefeito, ' ');
        $codigoVice = substr($vicePrefeito, 0, $espaco);
        $codigoUltAtulizacao = substr($vicePrefeito, $espaco + 1);
        //Cria o link que leva até o vice-prefeito
        $urlVicePrefeito = "http://divulgacand2012.tse.jus.br/divulgacand2012/mostrarFichaCandidato.action?sqCandSuperior=" . $codigoVice . "&codigoMunicipio=" . $codigoMunicipio . "&dtUltimaAtualizacao=" . $codigoUltAtulizacao;
        capturaDadosCandidatos($urlVicePrefeito, $codigoMunicipio, 15);
    }
}