leco_123 1 Denunciar post Postado Outubro 20, 2011 Boa tarde, estou com um problema em recuperar uma tabela de cotação agrícola de um site do governo http://celepar7.pr.gov.br/sima/cotdias1.asp tem muitas empresas que usam essas informações deste site, mais estou com dificuldades de conseguir essas informações, comecei a desenvolver mais não deu certo. <?php // Nova instância de DOMDocument $DOMDocument = new DOMDocument( '1.0', 'iso-8859-1' ); // URL Do site que você deseja extrair o conteudo $WebSite = 'http://celepar7.pr.gov.br/sima/cotdias1.asp'; // Não preservar espaços em branco redundantes $DOMDocument->preserveWhiteSpace = false; //Carrega o conteudo do site @$DOMDocument->loadHTML(file_get_contents( $WebSite )); /** * Nova instância do DOMXPath */ $DOMXPath = new DOMXPath($DOMDocument); /** * Procura no Documento, um elemento 'table' que o id é igual a .. então avança pra seu filho 'tbody' * depois avança para o filho de 'tbody', que é o 'tr' que o atributo 'class' contenha uma substring de 'etblraw' * então avança para 'td', que recupera todos os valores de cada 'td' que não seje a primeira coluna na tabela * porque é a sequencia deles, creio que não seje útil pra você */ foreach( $DOMXPath->query( './/table/tbody/tr/td' ) as $Nodes){ /** * Procura por todos os filhos de TD, que pode ser hrefs, ou textos .. etc */ foreach( $Nodes->childNodes as $Node ){ /** * Monta um array com os valores encontrados, removendo os espaços em brancos adicionais */ $Data[] = utf8_decode( preg_replace( '/\s/', null, $Node->nodeValue ) ); } } echo '<pre>'; $Data = array_chunk( $Data, 12 ); foreach( $Data as $index => $data ){ foreach( $Data[ $index ] as $values ){ if( is_numeric( $values ) ){ $val[ $index ][] = intval( $values ); }else{ $val[ $index ][] = sprintf( "'%s'", $values ); } } } for( $i = 0; $i < sizeof( $val ); ++$i ){ $preparedValues[] = sprintf( '%s', implode( ', ', $val[$i] ) ); } print_r( $preparedValues ); $primeiro=implode(',', $preparedValues); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Fabio Pratta 14 Denunciar post Postado Outubro 20, 2011 se você repara no link q você postou o resultado é gerado de acordo com um id enviado via post a pagina ou seja se tentar o endereço direto http://celepar7.pr.gov.br/sima/cotdiap1.asp não vai recuperar nada pois vai dar erro! Compartilhar este post Link para o post Compartilhar em outros sites
Alisson_Schneider 0 Denunciar post Postado Outubro 20, 2011 Exatamente o que o Fabio falou mas que dados você quer recuperar, e de que forma.. da uma explicadinha melhor ai vlw Compartilhar este post Link para o post Compartilhar em outros sites
leco_123 1 Denunciar post Postado Outubro 20, 2011 Fabio como que faço pra recuperar esse id ou achar uma forma mais fácil de pagar esses dados? Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Outubro 20, 2011 cara, você pegou o endereco errado... errado $WebSite = 'http://celepar7.pr.gov.br/sima/cotdias1.asp'; e sim http://celepar7.pr.g...ima/cotdiat.asp entra aqui pra você ver o endere cocorreto.... http://celepar7.pr.gov.br/sima/ mais atencao gente, mais atencao...uma coisa simplerrima... Compartilhar este post Link para o post Compartilhar em outros sites
leco_123 1 Denunciar post Postado Outubro 20, 2011 Exatamente o que o Fabio falou mas que dados você quer recuperar, e de que forma.. da uma explicadinha melhor ai vlw Então Preciso só que apa ressa todos os produtos e os valores da coluna pato branco Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Outubro 20, 2011 nao sei se percebeu mas aqui @$DOMDocument->loadHTML(file_get_contents( $WebSite )); ja esta escondendo varios erros....retira o @ pra ve-los... Compartilhar este post Link para o post Compartilhar em outros sites