Ir para conteúdo

Arquivado

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

DunkMask

Recuperar dados de um site

Recommended Posts

Olá, bom dia.
Faço parte de um grupo de sorteios de jogos, e para facilitar um pouco para nós. estamos querendo criar um site para centralizar algumas informações para os membros do grupo.

Um dos objetivos é resgatar dessa plataforma de sorteio, os atuais jogos que estamos sorteando, quantidade de sorteios e etc. todas as informações que precisarmos para incluir em nosso site. Praticamente as informações que precisamos esta neste link: https://www.steamgifts.com/group/VqT9o/steamtrocasbrasilesorteios Mas queremos colocar em nosso site, já que alguns sorteios nós abrimos apenas para alguns usuários bem posicionados em um rank interno nosso.

O que vocês me indicariam para recuperar esses dados. Alguém pode me apontar um caminho para chegar a solução que preciso?

Desde já agradeço pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Te recomendo a contratar um programador se você não tiver conhecimento em programação.

Você meio que pediu a explicação do sistema todo, ai fica meio complicado!

Na verdade eu não preciso contratar alguem no momento. estou fazendo isso pq eu quero aprender e é novidade para mim. Recuperar informações de outro site é algo que não cheguei a tentar ainda então resolvi tentar.

Quanto fato de ter pedido a explicação do sistema. queria ver quais as sugestões me dariam, já que tentei usar file_get_contents e curl e não consegui,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se esta plataforma não tem um WebService

já verifiquei isso, não tem API e nem webservice para isso.. por isso recorri ao forum para ver se alguem ja fez este tipo de coisa. Como eu disse, tentei usar o curl e o flie_get_contents e não consegui capturar nada do site em questão

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro você terá que estudar como o site interpreta as requisições, existem sistemas que bloqueiam requisições que não venham de navegadores, para isto você tem que simular ser um navegador usando algum cabeçalho, pelo que vi a primeira página é exibida sem problemas, já os links levam para páginas que exigem cadastro, isso já é outro problema, já que você terá que logar no sistema.

O caminho mais curto é cURL mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro você terá que estudar como o site interpreta as requisições, existem sistemas que bloqueiam requisições que não venham de navegadores, para isto você tem que simular ser um navegador usando algum cabeçalho, pelo que vi a primeira página é exibida sem problemas, já os links levam para páginas que exigem cadastro, isso já é outro problema, já que você terá que logar no sistema.

O caminho mais curto é cURL mesmo.

Eu tentei também simular uma requisição de navegador no curl. com o headers e useragent o link que eu mandei ai na verdade mesmo sem login ele consegue ver os dados. por isso acredito que o fato de exigir login não vai atrapalhar.

a unica vez que não me apresentou erro foi usando simulado o navegador, mas mesmo assim não consegui ler nada do site. o resultado vinha para mim tudo em branco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o código de retorno do servidor? Geralmente quando a requisição é considerada inválida vai retornar um 4XX ou o 500 direto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o código de retorno do servidor? Geralmente quando a requisição é considerada inválida vai retornar um 4XX ou o 500 direto.

Ai que esta o problema. não me retorna nada. página em branco.

Este é o código que usei para tentar capturar algo.

<?php
 
    $headers = array (
        'Accept-Language: en-US;q=0.6,en;q=0.4',
    );

    $agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; es-MX; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13";

    $url = "https://www.steamgifts.com/group/VqT9o/steamtrocasbrasilesorteios";


    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $page = curl_exec($ch);
    curl_close($ch);

    if($page){
        return $page;
    }
    return 'Forbidden'; 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso vai retornar o código que o servidor está devolvendo, o fato de devolver uma página em branco só significa que não há nada para o navegador renderizar, contudo um cabeçalho é devolvido e é isso que interessa nesse momento.

echo curl_getinfo($ch, CURLINFO_HTTP_CODE);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso vai retornar o código que o servidor está devolvendo, o fato de devolver uma página em branco só significa que não há nada para o navegador renderizar, contudo um cabeçalho é devolvido e é isso que interessa nesse momento.

echo curl_getinfo($ch, CURLINFO_HTTP_CODE);

o erro é 301, isso não é um redirecionamento? o followlocation não deveria contornar isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já resolveu o problema?

Ja sim. com a linha de código que o ESErra postou para me apresentar o código do errou ficou fácil de resolver.. agora meu desafio é pegar o conteúdo de algumas divs determinadas ali e inserir no meu banco de dados.

Mas agora tentarei ir até onde eu conseguir, e em caso de dúvidas eu retorno aqui novamente XD.

Obrigado a todos

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.