Ir para conteúdo

POWERED BY:

Arquivado

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

(RNU) Ruan Silva

Buscar Informações de outro site

Recommended Posts

Boa tarde a todos. Estou com uma dúvida (que é mais uma curiosidade).

Eu utilizo um site (http://comprasnet.gov.br/Livre/Ata/PesquisaMaterial.asp?pForm=form_licit_medic&pTipoSelecao=0&pCampoNom=lstMateriais) do governo para consultar algumas descrições de códigos que eu utilizo. Explicando melhor.

 

  • Meu chefe me passa o seguinte código: 231874;
  • Eu acesso o link que citei acima, insiro ele em um input de texto e submeto ele por um botão;
  • a pagina atualiza e me retorna um campo de texto com a descrição do código: "TOALHA ROSTO, MATERIAL 100% ALGODÃO, COR BRANCA, COMPRIMENTO 45, LARGURA 25";
  • Eu copio essa descrição e insiro no sistema local.

É possível eu criar uma instrução que visite a pagina, submeta o código e retorne para um campo de texto do meu formulário os dados da descrição?

Fica mais prático, do que sempre ter que visitar a página para realizar esta tarefa simples, mas que demanda um certo tempo, por serem muitos códigos.

 

Detalhe: A página do governo que eu utilizo para esta consulta não está em PHP, está em ASP.

 

Grato a todos desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse é meu código inicial, testando o cURL:

<html>
<head>
	<meta charset="iso-8859-1"/>
	<title>Teste cURL</title>
</head>
<body>


<?php
  // minha url de teste
  $string = 'http://comprasnet.gov.br/Livre/Ata/PesquisaMaterial.asp';
  $string.= '?busca=true&codigo1=231874&codigo2=&codigo3=&codigo4=&codigo5=';
  $string.= '&radical1=&radical2=&radical3=&radical4=&radical5=';
  $string.= '&pesquisa1=i&pesquisa2=c&pesquisa3=c&pesquisa4=c&pesquisa5=c';
  $string.= '&pForm=form_licit_medic&pCampoNom=lstMateriais';
  $ch = curl_init($string);
  $resultado = curl_exec($ch);
  echo $resultado; //exibe o resultado... mas como puxar apenas o que importa?
  curl_close($ch);
?>

</body>
</html>
aqui ele exibe a página, com todos os dados (incluindo o texto que eu preciso). A dúvida é, como passar para uma variável apenas o texto que eu preciso?.

 

 

Neste caso esta dentro de uma td, que esta dentro de uma tr, que esta dentro de uma table, que esta dentro de outra td, que esta dentro de uma tr, que esta dentro de um tbody, que esta dentro de uma table, que esta dentro de um form, que esta dentro do body, ou seja:

 

<body>
    <form id="frm_material">
		<table class="box" id="TABLE1">
			<tbody>
				<tr>
					<td class="TdTable">
						<table class="table">
							<tbody>
								<tr>
									<td class="campo">
										"dados"
									</td>
								</tr>	
							</tbody>
						</table>	
					</td>	
				</tr>
			</tbody>
		</table>
	</form>
</body>
Como buscar apenas a informação que esta dentro do "td.campo" e passar esta informação para uma variável?

 

Grato :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para pegar apenas o valor do td campo, você pode usar o PHP Simple HTML DOM Parser

Olha um exemplo simples do funcionamento:

<?php 
include("simple_html_dom.php");
$url = 'http://comprasnet.gov.br/Livre/Ata/PesquisaMaterial.asp?busca=true&codigo1=231874&codigo2=&codigo3=&codigo4=&codigo5=&radical1=&radical2=&radical3=&radical4=&radical5=&pesquisa1=i&pesquisa2=c&pesquisa3=c&pesquisa4=c&pesquisa5=c&pForm=form_licit_medic&pCampoNom=lstMateriais';


$conteudo = file_get_html($url);
foreach($conteudo->find('td[class=campo]')as $td){
foreach($td->find("input[type=hidden]")as $input){
echo $input->value;


}
}


?>

Resultado:

 

TOALHA ROSTO, MATERIAL 100% ALGODÃO, COR BRANCA, COMPRIMENTO 45, LARGURA 25

espero ter ajudado. :yes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguns erros:

 

Warning: include(simple_html_dom.php): failed to open stream: No such file or directory in C:\xampp\htdocs\estudos\curl2.php on line 7

 

Warning: include(): Failed opening 'simple_html_dom.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\estudos\curl2.php on line 7

 

Fatal error: Call to undefined function file_get_html() in C:\xampp\htdocs\estudos\curl2.php on line 12

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estava faltando o arquivo.

Agora aparece um Warning e um erro:

 

Warning: file_get_contents(http://comprasnet.gov.br/Livre/Ata/PesquisaMaterial.asp? busca=true&codigo1=231874&codigo2=&codigo3=&codigo4=&codigo5=&radical1= &radical2=&radical3=&radical4=&radical5=&pesquisa1=i&pesquisa2=c&pesquisa3=c &pesquisa4=c&pesquisa5=c&pForm=form_licit_medic&pCampoNom=lstMateriais): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in C:\xampp\htdocs\estudos\simple_html_dom.php on line 75

 

Fatal error: Call to a member function find() on a non-object in C:\xampp\htdocs\estudos\curl2.php on line 13

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tua URL tá quebrada.

Tem espaço em branco em algum lugar dela. É só você copiar e colar no navegador e verá que não dá certo.

O erro do Find é em decorrencia da falta de conteudo em file_get_contents.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu amigo, como vc mesmo disse a URL estava quebrada, o que acarretou no erro :)

Resolvido com a ajuda de vcs dois. Valeu :)

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.