Ir ao conteúdo
  • Cadastre-se
ismalty

Php, como fazer requisição curl esperar a pagina de destino carregar?

Recommended Posts

Boa tarde pessoal.

Andei pesquisando sobre como pegar informação de sites com requisição de login. Consegui fazer o login, mas ao recuperar as informações, vi que tinha partes que nao estavam aparecendo, e percebi no site que esse conteudo era gerado dinamicamente. Então minha pergunta é: como impor ao comando curl que espero a pagina carregar?

O codigo:
 

<?php
//initial request with login data
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'www.site.com.br');
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "loginUsername=user&loginPassword=pass");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, '');  //could be empty, but cause problems on some hosts
curl_setopt($ch, CURLOPT_COOKIEFILE, '');  //could be empty, but cause problems on some hosts
$answer = curl_exec($ch);
if (curl_error($ch)) {
    echo curl_error($ch);
}
//another request preserving the session
//sleep(5);
curl_setopt($ch, CURLOPT_URL, 'www.site.com.br');
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, "");
$answer = curl_exec($ch);
if (curl_error($ch)) {
    echo curl_error($ch);
}
curl_close( $ch );

?>

 

Desde já, agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se vocês estão esperando que o cURL, ou qualquer outra biblioteca que realiza requisições, faça a execução de javascript que está por trás disso, vocês vão continuar com o mesmo problema.

 

As páginas que vocês estão tentando carregar e etc... devem executar chamadas em javascript para carregar o resto do conteúdo. cURL não executa javascript. O Conteúdo não vai ser carregado.

 

É mais fácil vocês pedirem que desenvolvam um webservice que ficarem tentando simular o envio da requisição para os dados brotarem na tela :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×