Ir para conteúdo

POWERED BY:

Arquivado

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

kdz

Como capturar dados de outro site?

Recommended Posts

Olá,

 

Preciso gravar as informações da tabela FIPE de carros (http://www.fipe.org.br/web/indices/veiculos/default.aspx?p=51) em meu banco de dados, como eles não oferecem nenhuma API (pelo menos até aonde eu sei). Como faço para copiar de forma manual diretamente no site deles para poder inserir no meu banco?

 

Eu vi que o mercadolivre conseguiu fazer isso.

http://www.mercadolivre.com.br/jm/ml.motors.fipeBrasilSearch.fipeBrasilSearchController

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que os dados são dinâmicos de acordo com as opções que você setar nos selects.

Como que eu faço um robozinho para percorrer os todos as combinações nos selects e capturar o dado final?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou utilizando o curl.

Mas os selects são dinâmicos e eu não sei utilizar muito bem o curl.

 

Vou colar aqui o código que tenho pronto aqui.

 

Alguém pode ajudar?

 

<?php
    $urlfipe = 'http://www.fipe.com.br/web/indices/veiculos/default.aspx?azxp=1&p=51';

    $remote_site = file_get_contents($urlfipe);

    preg_match('/name=\"__VIEWSTATE\" id=\"__VIEWSTATE\" value=\"(.+?)\"/', $remote_site, $viewstate);
    $viewstate = $viewstate[1];

    preg_match('/name=\"__EVENTVALIDATION\" id=\"__EVENTVALIDATION\" value=\"(.+?)\"/', $remote_site, $eventvalidation);
    $eventvalidation = $eventvalidation[1];

    
    $dados = array(
            'ScriptManager1' => 'UdtMarca|ddlMarca',
            '__ASYNCPOST' => 'true',
            '__EVENTARGUMENT	' => '',
            '__EVENTTARGET' => 'ddlMarca',
            '__EVENTVALIDATION' => $eventvalidation,
            '__LASTFOCUS' => '',
            '__VIEWSTATE' => $viewstate,
            'ddlAnoValor' => '0',
            'ddlMarca' => '21',
            'ddlModelo' => '0',
            'ddlTabelaReferencia' => '124',
            'txtCodFipe' => ''
    );
    
    $ch = curl_init($urlfipe);
    curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: application/x-www-form-urlencoded"));
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $dados);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_REFERER, $urlfipe);
    $response = curl_exec($ch);
    echo $response;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema não é permissão, eu já entrei em contato com eles e perguntei se possuem algum webservice ou coisa do tipo, fui informado que não.

 

Acho que aqui também ninguém vai conseguir solucionar esse problema de 3 selects nesse site, já pesquisei em outros sistes e ninguém até agora conseguiu fazer isso =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema não é permissão, eu já entrei em contato com eles e perguntei se possuem algum webservice ou coisa do tipo, fui informado que não.

 

se nao pode nao pode...

o melhor que você faz é não usar nada sem permissão, caso contrario corre risco de um processo

imagina que você tem um trabalhao pra coletar dados e alguem simplesmente usa um artificio para captura-los

 

ninguem 'vai conseguir resolver', ou ninguem quer pois se trata de meio não legal

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

O problema não é permissão, eu já entrei em contato com eles e perguntei se possuem algum webservice ou coisa do tipo, fui informado que não.

 

se nao pode nao pode...

o melhor que você faz é não usar nada sem permissão, caso contrario corre risco de um processo

imagina que você tem um trabalhao pra coletar dados e alguem simplesmente usa um artificio para captura-los

 

ninguem 'vai conseguir resolver', ou ninguem quer pois se trata de meio não legal

 

Com todo respeito, acho que você não entendeu muito bem ou eu não me expressei corretamente.

Eles não possuem nenhum webservice para venda de dados nem algo do tipo, mas NÃO HÁ nem um tipo de proibição.

E ninguém consegue ajudar, pois é algo um pouco mais complexo para a maioria dos usuários iniciantes, inclusive eu.

Se você não souber ou não estiver afim de ajudar beleza.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema não é permissão, eu já entrei em contato com eles e perguntei se possuem algum webservice ou coisa do tipo, fui informado que não.

 

você perguntou se ha webservice e responderma que não

então é pq o conteudo não é pra ser exibido em outro site

 

você quer usar um script proprio para capturar as informações da página sem a permissão da FIPE e isso é errado, como disse, se você pudesse ter acesso às informações, teria um XML para você usar

 

leia esse topico e repense se 'NÃO HÁ nem um tipo de proibição'

http://forum.imasters.com.br/index.php?/topic/409649-pesquisa-fipe/page__fromsearch__1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qualquer dados que você utiliza de um outro webservice é passivo de processo, pois as informações não pertence há você, até para ter um mini-sistema de busca de cep dinamico no site você precisa comprar o service dos correios.

A maneira + fácil e viável neste caso sera inserir um link para a pessoa entrar e consultar pelo site do fipe. Ou um iframe. Não sei você decide.

 

Quando eu fui comprar meu carro, a vendedora da concessionária, apesar do grande sistema de intranet entre as concessionárias. Teve que entrar no site do fipe só p/ me informar o valor de meu usado.

 

Imagina então um serviço de web. ? ?

 

Tenta ver o código fonte do mercado livre, para ver se adianta alguma coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você diz não haver proibição, entre em contato com a FIPE e pergunte se o banco de dados é pago e, se for, quanto é.

 

O melhor seria adquirir, mas se o valor for elevado, questione se é permitido usar o banco de dados de outro site.

 

Se a resposta não for negativa (porque muitas vezes, eles simplemenste tiram o deles da reta), entre em contato com o responsável pelo banco de dados que você tenta copiar e converse sobre a liberação do mesmo para você.

 

Se todo o procedimento for negativo, desista, pois qualquer tipo de discussão a respeito, poderá e será caracterizado como apologia à Pirataria (direito intelectual).

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.