Ir ao conteúdo
  • Cadastre-se
ismalty

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

Posts recomendados

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

Talvez não seja o melhor jeito, até porque a função da biblioteca é outra. Mas talvez utilizando o PHPUnit com Selenium você consiga resultados melhores e com mais qualidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@ismalty você conseguiu resolver seu problema?

Estou tentando fazer meu script PHP aguardar o carregamento completo de outra página, mas ele sempre para e retorna o valor da tela de "Aguarde o Carregamento" do outro site.

 

Como resolver isso?

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

×
×
  • Criar novo...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!