Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alfa ex

[Resolvido] pegar parte de site, e mostrar no meu

Recommended Posts

Olá a todos.

 

Pessoal, fiz uma boa pesquisa mas ainda n consegui nada.

 

o que eu preciso fazer é pegar uma parte de um site, e mostrar no meu.

 

no site http://www.dcomercio.com.br/ já na entrada, existe uma galeria com slide onde embaixo está escrito 'dcultura' 'politica' 'cidades' etc.

 

antes ele faziam por iframe, oque permitia que eu pegasse o iframe.

 

mas hoje não utilizam mais.

 

queria saber se tem como pegar aquela area apenas, para continuar mostrando no meu site, pq agora ta um erro lá rsrsrrsrsrs

 

obrigado desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar cURL.


<?php

$endereco = 'http://forum.imasters.com.br/topic/436100-pegar-parte-de-site-e-mostrar-no-meu/';
$ch = curl_init( );
curl_setopt( $ch, CURLOPT_URL, $endereco );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 0 );
$content = curl_exec( $ch );
curl_close( $ch );
preg_match( "/<title>(.*)<\/title>/i", $content, $matches );

var_dump( $matches[ 1 ] );

?>

 

Agora basta criar uma ER que "pege" o que você quer.

 

Verifique no php.ini se a extensão php_curl.dll está abilitada, se não estiver remova o ';' e reinicie o servidor

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, eu estava lendo sobre o cURL, mas ainda estava meio obscuro a compreensão,

 

Valew mesmo, vou testar aque e já dou um toque se funcionou

 

 

 

------------------EDITADO--------------------------

 

 

 

bom, deu certo, deu pra retirar certas partes.

 

Agora vou ter que sofrer com as expressões regulares.

 

se quiser marcar o tópico como resolvido, fique a vontade, pois a dúvida de como ler o site já foi respondida.

 

 

e se quiser me ajudar com isso eu agradeceria hehehehe.

 

não faço ideia de como fazer o seguinte em expressão regular.

 

lá tem varias divs

 

<div um> /*ABRIR NESTA DIV*/

<div dois>

<div tres>

<div quatro>

texto texto

<div quatro>

<div tres>

<div dois>

<div um> /*FEXAR NESTA DIV*/

 

não imagino como fazer pra ele pegar da <div id um> e fexar com sua tag correspondente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Graças a Deus inventaram o DOMDocument .!

<!doctype html>
<html>
   <head>
       <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
   </head>
   <body>
       <?php 
               $WebSite = 'http://forum.imasters.com.br/topic/436100-pegar-parte-de-site-e-mostrar-no-meu/';
               $DOMDocument = new DOMDocument( '1.0', 'utf-8' );
               $DOMDocument->preserveWhiteSpace = false;
               @$DOMDocument->loadHTML( file_get_contents( $WebSite ) );
               echo utf8_decode( $DOMDocument->getElementsByTagName( 'title' )->item(0)->nodeValue );
       ?>
   </body>
</html>

Saída:

pegar parte de site, e mostrar no meu - iMasters Fóruns

 

Você pode procurar por XPath, para achar elementos com atributos específicos no Documento.

como por exemplo:

 

<?php 
           $WebSite = 'http://forum.imasters.com.br/topic/436100-pegar-parte-de-site-e-mostrar-no-meu/';
           $DOMDocument = new DOMDocument( '1.0', 'utf-8' );
           $DOMDocument->preserveWhiteSpace = false;
           @$DOMDocument->loadHTML( file_get_contents( $WebSite ) );
           $DOMXPath = new DOMXPath( $DOMDocument );
           echo utf8_decode( $DOMXPath->query( './/meta[@name="keywords"]' )->item( 0 )->getAttribute( 'content' ) );
?>

Saída:

pegar,parte,site,mostrar,meu,Olá,todos,Pessoal,fiz,uma,boa,pesquisa,mas,ainda,consegui,nada,que,preciso,fazer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal desculpa ressuscitar esse post, porém estou montando um pequeno sisteminha pra automatizar umas tarefas que faço de geração de relatórios centralizados e no momento estou precisando pegar vários relatórios (tabelas HTML) de uma página e centraliza-los em um local só, porém até o momento não encontrei uma forma de pegar todas as tabelas html do site, mantendo as TAGs.

 

Usando o código, consegui pegar apenas o conteúdo em texto da primeira tabela.

 

       <?php
               $WebSite = 'https://www.sistema.com.br/programas/relatorio1.html';
               $DOMDocument = new DOMDocument( '1.0', 'utf-8' );
               $DOMDocument->preserveWhiteSpace = false;
               @$DOMDocument->loadHTML( file_get_contents( $WebSite ) );
               echo $DOMDocument->getElementsByTagName( 'table' )->item(0)->nodeValue ;
       ?>

 

Fiz a alteração de 'table' para body, porém o conteúdo veio sem tags HTML nenhum e com um lixo que não preciso. Agradeço quem puder me ajudar nesse quesito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.