Capturar div de outro site

Boa tarde, pessoa!

Estou precisando de uma ajudinha aqui, fiz um script conforme pesquisei e não está dando certo, o problema é o seguinte:

Estou tentando capturar uma div que conta no site do http://globoesporte.globo.com, só que quando tenho o retorno, ele exibe a tela toda da página, e eu só quero a div onde consta a tabela de classificação, ele deve vim de acordo como está no site do globoesporte, com seus devidos css.

Preciso somente deste trecho:

e ele está me trazendo o seguinte:

este é o meu código:

    <?php 						
	libxml_use_internal_errors(true);
	
	
	$proxy = 'xxxxxxxxxx';
	$auth = base64_encode("xxxxxxx:xxxxxxx");
	$url = "http://globoesporte.globo.com/futebol/brasileirao-serie-b/";
	
			$aContext = array(
				  'http' => array(
					'proxy' => 'tcp://' . $proxy,
					'request_fulluri' => true,
					'header' => "Proxy-Authorization: Basic $auth"
			),
	);
	
	$cxContext = stream_context_create($aContext);

	$sFile = file_get_contents("http://globoesporte.globo.com/futebol/brasileirao-serie-b/", False, $cxContext);
	
	echo $sFile;
	
	libxml_use_internal_errors(false);


		
?>

Sem um identificador na div fica dificil… você pode colocar o html resgatado no objeto DOM e tentar manipular através de xpath…

Algo nesse sentido…

$dom = new DOMDocument();
$dom->loadHtml($sFile);
$array_divs = $dom->getElementsByTagName('div');
...

Já tentei dessa forma, ai ele só trás texto.

tentei esse também:

libxml_use_internal_errors(true);


$ch = curl_init();

$proxy = 'proxy.sec.ba.gov.br:3128';
$proxyauth = 'yan.santos:Pl@ymoregame6';

$header = "X-Forwarded-For: {$_SERVER['REMOTE_ADDR']}";

curl_setopt($ch, CURLOPT_URL, "http://globoesporte.globo.com/futebol/brasileirao-serie-b/");
curl_setopt($ch, CURLOPT_HTTPHEADER, array($header));
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyauth);
//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') {
	die('Erro!');
} else {
	$doc = new DOMDocument();
	//$doc->formatOutput = true;
	$doc->loadHTML($output);
	
	$xpath = new DOMXpath($doc);
	$elemento = $xpath->query( '//div[@class="tabela tabela-sem-jogos-por-grupo"]' )->item(0)->nodeValue;
	
	echo $elemento;
	//->item(0)->nodeValue
}//end else

libxml_use_internal_errors(false);

Você precisa pegar o nó/elemento por completo, ao usar nodeValue você está pegando o conteúdo e não a div inteira, tente salvando como html sem usar nodeValue…

$xpath = new DOMXpath($doc);
$elemento = $xpath->query( '//div[@class="tabela tabela-sem-jogos-por-grupo"]' )->item(0);
$div = $doc->saveHTML($elemento);

Veja a documentação

http://php.net/manual/pt_BR/domdocument.savehtml.php

Dessa forma ele trouxe, mas ele não veio com a tabela formatada de acordo como o site.

Não virá porque você não tem os css/js… por isso que antes funcionava, você trazia a página inteira, precisa incluí-los no dom também… além do mais, você só pediu a div :joy:

como faço para incluir no DOM ?

Fazendo outros $path->query…

Irei tentar aqui, vlw :slight_smile: