P3rukao 0 Denunciar post Postado Agosto 26, 2010 Daew, como que eu faço para pegar um determinado trecho do conteúdo obtido quando uso a biblioteca cURL? Com o seguinte código, eu consigo retornar a minha página por inteiro, mas eu gostaria de obter somente on trecho disso tudo: $ch = curl_init(); // informar URL e outras funções ao CURL curl_setopt($ch, CURLOPT_URL, "http://meusite.com.br/noticias/mercado-imobiliario/3945"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FILETIME, true); $output = curl_exec($ch);// acessar URL $response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);// Pegar o código de resposta if ($response_code == '404') { echo 'Página não existente'; } else { echo $output; } é possível eu pegar somente um trecho dessa página, tipo uma DIV ou outra, ou eu teria de criar uma página específica que retornasse somente o que eu quero, como em um XML por exemplo?? Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Agosto 26, 2010 DOMDocument + DOMXPath. Procure por isso no manual do PHP. Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Agosto 26, 2010 Valeu aí pela dica André, eu dei uma procurada e consegui pegar os valores, porém, eles estão vindo sem tags HTML, tá vindo somente texto puro... ...continuando do exemplo anterior: $doc = new DOMDocument(); $doc->loadHTML($output); $xpath = new DOMXpath($doc); $nome = $xpath->query( "//div[@id='listaNoticias']" )->item( 0 )->nodeValue; echo $nome; Eu li a respeito, e vi que o problema é que o nodeValue tem algum problema para carregar o HTML, por isso vem só o texto. Não tem como ler esse conteúdo HMTL específico de minha página e retornar um tipo de array, assim como é com o SimpleXML ao ler um xml qualquer??? Não teria uma forma de converter esse documento HTML para XML, para assim usar o SimpleXML?? Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Agosto 27, 2010 Poderia mostrar o conteúdo e o que está querendo pegar dele? Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Agosto 27, 2010 Pronto... $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://temoscasa.com.br/noticias/mercado-imobiliario/"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FILETIME, true); $output = curl_exec($ch);// acessar URL $response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);// Pegar o código de resposta if ($response_code == '404') { echo 'Página não existente'; } else { //echo $output; $doc = new DOMDocument(); $doc->formatOutput = true; $doc->loadHTML($output); $xpath = new DOMXpath($doc); $elemento = $xpath->query( "//div[@id='listaNoticias']" )->item( 0 )->nodeValue; echo $elemento; }//end else Dessa forma, eu consigo pegar só o conteúdo no miolo do site, que irá mudar de acordo com a url que eu passar... Eu gostaria de obter o HTML desse trecho... para poder manipular de acordo com minha necessidade... assim como se faz com um XML... sacas?? Caso não for possível fazer isso, eu seria obrigado a gerar algum tipo de XML dinâmico com todo o conteúdo das páginas.... para assim poder manipular, mas acho que essa não seria a melhor forma de fazer.. =/ -- "Pensei em converter esse documento HTML para XML ou simplemente lê-lo com o SimpleXML, pois a estrutura de marcação é semelhante, mas não funfou por conta do DOCTYPE..." Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Agosto 27, 2010 Aqui a solução: http://fr.php.net/manual/en/class.domelement.php#86803 Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Agosto 27, 2010 Opa, muito obrigado aí pela ajuda André, funcionou direitinho aqui. Agora vou trabalhar em cima disso... vlw aí... ;) Compartilhar este post Link para o post Compartilhar em outros sites