Ir para o conteúdo
ruimcosta

acesso via cURL

Mensagens Recomendadas

morsa

Do que vi, tens que fazer um pedido inicial para obteres a chave de validação (o captcha). Isso fornece-te um código que deves submeter quando fazes o pedido que, salvo erro, é "__EVENTVALIDATION". Tens um input com este valor.

- Deves enviar por POST o parâmetro "ctl00$ContentPlaceHolderMain$txtDadosPubNif" com o valor do NIF da entidade sobre a qual queres pesquisar.

- Deves mostrar a imagem ao utilizar e pedir para ele introduzir o código que está na caixa. A imagem está em : div id="ctl00_ContentPlaceHolderMain_divCaptcha" > table > tr > segundo td > div > imagem

- Deves criar um parâmetro POST com o name "ctl00$ContentPlaceHolderMain$txtCaptcha" com o valor que o utilizador introduzir na imagem.

Ou seja, com o cURL obtens a página, código de validação e a imagem do captcha. Crias um form com os parâmetros que mencionei acima, submetes esse formulario para o url "http://publicacoes.mj.pt/Pesquisa.aspx", e à partida deverás obter os dados.

Vi isto na diagonal, não sei se me escapou alguma coisa. Mas acho que o necessário está aí.

1abraço :)

NOTA: As informações acima advêm da leitura do código público e dos pedidos públicos ao servidor mencionado e têm somente cariz educativo.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ruimcosta

Obrigado pelas dicas, mas pela minha falta de experiência a utilizar cURL não faço a mínima ideia de como obter o código captcha válido para proceder ao Post do form.

Ja tenho esta função que me retorna o conteúdo da página.

<?php

echo curl_download("http://publicacoes.mj.pt/Pesquisa.aspx");

function curl_download($Url){
    if (!function_exists('curl_init')){
        die('Sorry cURL is not installed!');
    }

    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, $Url);
    curl_setopt($ch, CURLOPT_REFERER, "http://www.google.pt");
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla /10.0");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    
    $output = curl_exec($ch);

    curl_close($ch);

    return $output;
}


?>

Podem ajudar-me nos próximos capítulos??

Obrigado


Abraços e beijinhos,Rui Costa http://www.euobservo.com

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.