Ir para conteúdo

POWERED BY:

Arquivado

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

jdpstudios

Pegar codigo fonte de um pagina

Recommended Posts

Olá pessoal,

estou tentando pegar o codigo fonte de uma página do orkut, porém como o site trabalha com redirecionamento, esta ficando dificil.

 

A questão é a seguinte, tanto com o get_file_content() quanto com o CURL, estou tendo o seguinte problema.

 

1 - criei o código em php abaixo:

 

<?php
$url = "http://www.orkut.com.br/Main#Home.aspx";

//$content = file_get_contents($url);

function open_url($url){
$curl = curl_init();
curl_setopt ($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
//curl_setopt($curl, CURLOPT_REFERER, 'https://www.google.com/);
$content = curl_exec ($curl);
curl_close ($curl);
return $content;
}

$content = open_url($url);
print $content;
?>

2 - em seguida, este codigo php puxa o codigo fonte da página http://www.orkut.com.br/Main#Home.aspx (usuário já logado e os cookies todos setados).

 

Agora é que vem o problema, não sei porque, quando vem o resultado, ele substitui o "Home.aspx" pelo nome do meu arquivo (pegar.php) e retornando uma página inválida.

 

Alguém tem uma idéia de como posso resolver isto?

 

desde já agradeço.

Obrigado

Julio Diniz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tópico movido

 

Origem: Programação » PHP » Artigos, Tutoriais e Matérias (PHP)

Destino: Programação » PHP

Compartilhar este post


Link para o post
Compartilhar em outros sites

é um recurso de segurança para evitar abstração de dados sem autorização

 

a validação é feita em server-side e client-side

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok hinom, então não seria possível? Como o browse consegue receber a pagina e exibir? Em php não é possível?

 

vlw

 

 

 

é um recurso de segurança para evitar abstração de dados sem autorização

 

a validação é feita em server-side e client-side

Compartilhar este post


Link para o post
Compartilhar em outros sites

Execute o script abaixo e analise como o código HTML retorna.

Se tiver conhecimentos básicos em html e javascript entenderá o funcinamento da validação client-side.

A validação server-side é difícil determinar pois existem diversos meios.

 

 

<?php

$options['url']	  = 'http://www.orkut.com/Main#Home.aspx';
$options['port']	 = 80;
$options['timeout']  = 5;
$options['referer']  = 'http://www.orkut.com/';

$data = http_post_fields( $options['url'], $xml, array(), $options, $rs );

echo "<textarea cols=200 rows=50>";
if( $rs['response_code'] == 200 )
{
	echo $data;
}
echo "</textarea>";

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

da pra usar curl, mas você nao esta enviando o cookie, por isso que ele nao exibe nada, é como você tenta-se entrar na home sem estar logado

 

pegue seu cookie do orkut depois use ele junto com o curl dai vai dar certo

 

eu sempre usei o curl e nunca tive problemas com ele, inclusive ja usei com o orkut

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Fabyo,

 

os cookies estão setados sim... eu até consegui com o CURL, mas parei na parte que ele usa javascript para redirecionamento. Obtenho sim a página html mas com a informação de a função javascript do meu navegador pode ester desabilitada.

 

Na verdade, o que quero com este script é um projeto para fazer uma página do orkut diferente... desta forma o usuário pode customizar imagens, botões, etc... porém, para isto preciso carregar a página. Tentei carregar ela em uma janela e depois pegar o codigo fonte para puxar informações mas também não consegui.

 

alguma idéia?

 

Obrigado

 

 

da pra usar curl, mas você nao esta enviando o cookie, por isso que ele nao exibe nada, é como você tenta-se entrar na home sem estar logado

 

pegue seu cookie do orkut depois use ele junto com o curl dai vai dar certo

 

eu sempre usei o curl e nunca tive problemas com ele, inclusive ja usei com o orkut

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao comentei sobre o cookie porque nao vi ele no codigo, mas beleza

como falei da pra fazer usando o curl, eu ja fiz um acesso ao orkut usando o curl

você tem que entender que o curl simula exatamente um navegador, você precisa passar todas as informações que o site pede

 

pra isso use o plugin do firefox o livehttp headers, com ele ativado você loga no orkut e verifica todas as informações necessarias que o site do orkut esta pedindo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já estou usando esta ferramenta sim "liveHttp". Como disse antes, o problema é no redirecto do javascript, uma vez que o CURL não interpreta código javascript.

 

O que vou tentar é pegar este link de redirecionamento e fazer uma nova sessão curl

 

Este acesso que você já fez no orkut usando curl, é antigo ou novo? Achei diversos acessos mas com código antigo(antes do google modificar). Teria como me passar?

 

Obrigado

 

Entao comentei sobre o cookie porque nao vi ele no codigo, mas beleza

como falei da pra fazer usando o curl, eu ja fiz um acesso ao orkut usando o curl

você tem que entender que o curl simula exatamente um navegador, você precisa passar todas as informações que o site pede

 

pra isso use o plugin do firefox o livehttp headers, com ele ativado você loga no orkut e verifica todas as informações necessarias que o site do orkut esta pedindo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, você ta fazendo tudo certo entao

 

e realmente eu fiz isso ja tem um tempinho, fui mecher agora pra entender sua duvida e realmente ele loga e redireciona dai ele pegao nome do script e adiciona na url e diz que a pagina nao foi encontrada

 

nem sabia que o orkut tinha mudado, faz tempo que eu nao entro nele

 

dai sobre sua duvida você pode tentar isso que você ta querendo

 

outra ideia que nao sei se da certo ou se é viavel, mas se fosse só pro meu uso eu criaria um script com o nome de Home.aspx e fazia com que o apache interpreta-se o .aspx como codigo PHP, com isso rodando o script o orkut iria pegar esse nome e redirecionaria certo.

 

bom mas como falei isso parece gambiarra

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei isto tmb... só que ao inves de executar o script, ele abre o texto no navegador.

 

No entanto, existe esta forma de fazer o apache interpretar o arquivo .aspx sendo um código php? Como utilizo hopedagem, seria possível configurar isto ou teria que solicitar o pessoal onde tenho minha página hospedada?

 

vlw

 

Entendi, você ta fazendo tudo certo entao

 

e realmente eu fiz isso ja tem um tempinho, fui mecher agora pra entender sua duvida e realmente ele loga e redireciona dai ele pegao nome do script e adiciona na url e diz que a pagina nao foi encontrada

 

nem sabia que o orkut tinha mudado, faz tempo que eu nao entro nele

 

dai sobre sua duvida você pode tentar isso que você ta querendo

 

outra ideia que nao sei se da certo ou se é viavel, mas se fosse só pro meu uso eu criaria um script com o nome de Home.aspx e fazia com que o apache interpreta-se o .aspx como codigo PHP, com isso rodando o script o orkut iria pegar esse nome e redirecionaria certo.

 

bom mas como falei isso parece gambiarra

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao para configurar isso só via httpd.conf, e acredito que eles nao deixarao você mecher nisso

 

mas se quiser saber como funciona

 

AddType application/x-httpd-php .php

 

no lugar do .php você coloca o que quiser

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema é no redirecto do javascript, uma vez que o CURL não interpreta código javascript

use o str_replace para apagar o script

 

esse:

 

<script type="text/javascript">
var redirectUrl = 'https:\x2F\x2Fwww.google.com\x2Faccounts\x2FServiceLogin?service=orkut\x26hl=en-US\x26rm=false\x26cd=US\x26passive=true\x26skipvpage=true\x26sendvemail=false&continue=' + encodeURIComponent('http:\x2F\x2Fwww.orkut.com\x2FRedirLogin.aspx?msg=0&page=' + encodeURIComponent(document.location.pathname + document.location.search + document.location.hash));
document.location.replace(redirectUrl);
</script>
<script language="javascript">
addWindowLoadHandler(redirectToPage);
</script>

 

remova esses trechos

 

document.location.replace(redirectUrl);
addWindowLoadHandler(redirectToPage);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá hinom, obrigado pela dica... ainda não testei mas só uma dúvida:

 

Removendo estas duas linhas, o CURL irá interpretar que a página tem que ser redirecionada para o endereço informado na variável "redirectURL"?

 

vlw

Julio Diniz

 

o problema é no redirecto do javascript, uma vez que o CURL não interpreta código javascript

use o str_replace para apagar o script

 

esse:

 

<script type="text/javascript">
var redirectUrl = 'https:\x2F\x2Fwww.google.com\x2Faccounts\x2FServiceLogin?service=orkut\x26hl=en-US\x26rm=false\x26cd=US\x26passive=true\x26skipvpage=true\x26sendvemail=false&continue=' + encodeURIComponent('http:\x2F\x2Fwww.orkut.com\x2FRedirLogin.aspx?msg=0&page=' + encodeURIComponent(document.location.pathname + document.location.search + document.location.hash));
document.location.replace(redirectUrl);
</script>
<script language="javascript">
addWindowLoadHandler(redirectToPage);
</script>

 

remova esses trechos

 

document.location.replace(redirectUrl);
addWindowLoadHandler(redirectToPage);

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao..

esse replace você tem que fazer quando receber a resposta do CURL

 

faça o curl retornar o html dentro de algo legível, que não seja "text/html" para evitar qeu o browser nao interprete

assim você poderá analisar o html retornado e manipular como quiser

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.