Capturar dados de outra pagina por php

415 views
Skip to first unread message

Deivite Sousa

unread,
Apr 3, 2009, 4:32:27 PM4/3/09
to list...@googlegroups.com
Caros parceiros, gostaria de uma ajuda em relação a esse codigo: 
<?php
$ch = curl_init();
$timeout = 0;
curl_setopt($ch, CURLOPT_URL, 'http://www.ibge.gov.br/home/disseminacao/online/popclock/popclock.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$conteudo = curl_exec ($ch);
curl_close($ch);
echo $conteudo;
?>
 
Ate então elke funciona mas a parte realmente em que eu preciso não exibe, tipo eu preciso da estimativa da população brasileira mas ele so está trazendo a estimativa da população mundial
 
o dado que preciso é (Somos agora no Brasil:)
Mas ele so está me trazendo (Somos agora no Mundo:)
 
Esse codigo está funcionando nessa url:
 
 
Já adianto de ante mão que usei o seguinte codigo com file_get_contents como recomendou nossa amiga Beatriz mas não rodou não
<?php
$url = file_get_contents('http://www.ibge.gov.br/home/disseminacao/online/popclock/popclock.php');
preg_match_all($url, $conteudo);
$exibir = $conteudo[0][0];
$retirar = array('somos agora no mundo','metodologia utilizada','mais detalhes','ORES-->','<!--');
$exibir = str_replace($retirar, '', $exibir);
echo $exibir;
?>
Se alguem puder me ajudar eu agradeço
 
Abraços a todos

thiago silva

unread,
Apr 3, 2009, 4:52:06 PM4/3/09
to list...@googlegroups.com
Estou analisando o site do IBGE para você, a informação "Somos agora no Mundo:" esta aparecendo corretamente no HTML, porem a informação "Somos agora no Brasil: " esta oculta, debuguei com o FireDebug e nele aparece esse valor. Quando chegar eu casa vou olhar para você ok? Ate la continue testando vai que vc descobre.

O FI, de descobrir avisa ai, não some não!

2009/4/3 Deivite Sousa <deivi...@gmail.com>



--
"Ao que está assentado sobre o trono, e ao Cordeiro, sejam dadas ações de graças, e honra, e glória, e poder para todo o sempre." Ap 5:13

News Cafeicultura

unread,
Apr 3, 2009, 4:59:02 PM4/3/09
to list...@googlegroups.com
Dá uma olhada na pagina popclock.php
tem um javascrip que esta atualizando  na hora
a contagem da população do brasil, é ai o problema.
 

 
2009/4/3 Deivite Sousa <deivi...@gmail.com>

Bernardo Vieira

unread,
Apr 3, 2009, 4:59:29 PM4/3/09
to list...@googlegroups.com
Indiferente de você usar curl ou file_get_contents, você está usando a
função preg_match_all com o número incorreto de parâmetros (você não
forneceu $pattern):

int *preg_match_all* ( string $pattern , string $subject , array
&$matches [, int $flags [, int $offset ]] )

Tente o script assim:

<?php
$ch = curl_init();
$timeout = 0;
curl_setopt($ch, CURLOPT_URL,
'http://www.ibge.gov.br/home/disseminacao/online/popclock/popclock.php'
<http://www.ibge.gov.br/home/disseminacao/online/popclock/popclock.php%27>);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$conteudo = curl_exec ($ch);
curl_close($ch);

$pattern = '/(?:Somos agora
no).*?(Brasil|Mundo):.*?([0-9\\.]*)(?:habitantes)/s';
$conteudo = htm_entity_decode(strip_tags($conteudo));
if (preg_match_all($pattern, $conteudo, $matches, PREG_SET_ORDER)) {
$populacao = array (
$conteudo[0][1] => str_relace('.','',$conteudo[0][2]),
$conteudo[1][1] => str_relace('.','',$conteudo[1][2])
);
}

?>

Não tentei, mas deve funcionar (talvez com algum ajusto à regexp)


Deivite Sousa wrote:
> Caros parceiros, gostaria de uma ajuda em relação a esse codigo:
> <?php
> $ch = curl_init();
> $timeout = 0;
> curl_setopt($ch, CURLOPT_URL,
> 'http://www.ibge.gov.br/home/disseminacao/online/popclock/popclock.php'
> <http://www.ibge.gov.br/home/disseminacao/online/popclock/popclock.php%27>);
> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
> curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
> $conteudo = curl_exec ($ch);
> curl_close($ch);
> echo $conteudo;
> ?>
>
> Ate então elke funciona mas a parte realmente em que eu preciso não
> exibe, tipo eu preciso da estimativa da população brasileira mas ele
> so está trazendo a estimativa da população mundial
>
> A pagina que preciso capturar é essa:
> http://www.ibge.gov.br/home/disseminacao/online/popclock/popclock.php
> o dado que preciso é (Somos agora no Brasil:)
> Mas ele so está me trazendo (Somos agora no Mundo:)
>
> Esse codigo está funcionando nessa url:
> http://sistemas.zografou.uni5.net/index_pop.php
>
>
> Já adianto de ante mão que usei o seguinte codigo com
> *file_get_contents* como recomendou nossa amiga Beatriz mas não rodou não
> <http://www.ibge.gov.br/home/disseminacao/online/popclock/popclock.php%27>);

Beatriz KMS

unread,
Apr 3, 2009, 5:02:13 PM4/3/09
to list...@googlegroups.com
Não sei se vc percebeu, mas o codigo fonte da pagina vem assim:

<p>Somos agora no Brasil:&nbsp;&nbsp;&nbsp;
<span id="populacao"><span></span><span></span></span>&nbsp;habitantes. <br />
Somos agora no Mundo:&nbsp;&nbsp;&nbsp;
6.767.488.986 habitantes.

Mostrando assim:

Somos agora no Brasil: habitantes.
Somos agora no Mundo: 6.767.488.228 habitantes.

O número de habitantes no Brasil deve estar sendo carregado por javascript....


2009/4/3 Deivite Sousa <deivi...@gmail.com>:

Gihovani Demétrio

unread,
Apr 3, 2009, 5:11:03 PM4/3/09
to list...@googlegroups.com
Sim olha este arquivo aqui...
 
 
é ali que ele faz o calculo da populacao.

 
Reply all
Reply to author
Forward
0 new messages