Script to Extract Values from the InfoMoney Website for Dollar Quotation

3

I have a PHP Code with a script in Jquery that collects information from the InfoMoney site and returns the quotation of the commercial dollar (Buy and Sell).

I would like to know how to update this code so that in addition to the commercial dollar values it can collect the values of the tourism dollar, euro, etc.

If someone can help me with a PHP or Javascript solution would be very welcome!

See working clicking here

PHP Code

<?php

  if(!$fp=fopen("https://www.infomoney.com.br/mercados/cambio" , "r" )) 
  {
    echo "Erro ao abrir a página de cotação" ;
    exit;
  }

  $conteudo = '';
  while(!feof($fp)) 
  { 
    $conteudo .= fgets($fp,1024);
  }
  fclose($fp);

  $valorCompraHTML = explode('class="numbers">', $conteudo); 
  $valorCompra = trim(strip_tags($valorCompraHTML[5]));
  $valorVendaHTML = explode('+', strip_tags($valorCompraHTML[6]));

  //Estes são os valores HTML para exibir no site.  
  $valorVendaHTML = explode('-', $valorVendaHTML[0]);
  $valorVenda  = trim($valorVendaHTML[0]) ;

  //Estes são os valores numéricos para cálculos.     
  $valorCompraCalculavel = str_replace(',','.', $valorCompra);
  $valorVendaCalculavel  = str_replace(',','.', $valorVenda);

?>

HTML and Javascript

<p><strong>Compra:</strong> R$ <?php echo $valorCompra ?> <br/>
<strong>Venda:</strong> R$ <?php echo $valorVenda ?>  </p>


<h2>Exemplo de câmbio:</h2>
<label>Digite o valor em reais:</label>
<input type="text" id="converte" placeholder="1.00" onKeyUp="cambio()" style="width:50px">
<span id="resultado">0.00</span>    
<script>
    function cambio()
    {
        var valorDolarVenda = <?php echo $valorVendaCalculavel ?>;
        var valorReais   = document.getElementById('converte').value;
        if (document.getElementById('converte').value == '') valorReais = 0;
        var valorCambio = valorReais * valorDolarVenda;
        document.getElementById('resultado').innerHTML = valorCambio.toFixed(2);
    }
</script>
    
asked by anonymous 05.06.2017 / 15:36

2 answers

5

Values are taken by the elements of class="numbers". $valorCompraHTML = explode('class="numbers">', $conteudo);

From there, just locate the source code, example value tourism purchase valorCompraHTML[7] .

<?php
if(!$fp=fopen("https://www.infomoney.com.br/mercados/cambio" , "r" )) 
{
    echo "Erro ao abrir a página de cotação" ;
    exit;
}
$conteudo = '';
while(!feof($fp)) 
{ 
    $conteudo .= fgets($fp,1024);
}
fclose($fp);
$valorCompraHTML = explode('class="numbers">', $conteudo); 

$valorCompra = trim(strip_tags($valorCompraHTML[5]));

$valorVendaHTML = explode(' ', strip_tags($valorCompraHTML[6]));

//Estes são os valores HTML para exibir no site.    
$valorVendaHTML = explode(' ', $valorVendaHTML[0]);
$valorVenda  = trim($valorVendaHTML[0]) ;

//Compra Turismo.
$valorCompraT = trim(strip_tags($valorCompraHTML[7]));
$valorCompraT = explode(' ', $valorCompraT);
$valorCT  = trim($valorCompraT [0]) ;

//Venda Turismo.
$valorVendaT = trim(strip_tags($valorCompraHTML[8]));
$valorVendaT = explode(' ', $valorVendaT);
$valorVT  = trim($valorVendaT[0]) ;

//Compra Euro.
$valorCompraE = trim(strip_tags($valorCompraHTML[11]));
$valorCompraE = explode(' ', $valorCompraE);
$valorCE  = trim($valorCompraE[0]) ;

//Venda Euro.
$valorVendaE = trim(strip_tags($valorCompraHTML[12]));
$valorVendaE = explode(' ', $valorVendaE);
$valorVE  = trim($valorVendaE[0]) ;

//Estes são os valores numéricos para cálculos.   
$valorCompraCalculavel = str_replace(',','.', $valorCompra);
$valorVendaCalculavel  = str_replace(',','.', $valorVenda);
?> 
<html lan="pt-br">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, user-scalable=yes">
        <link href="https://fonts.googleapis.com/css?family=Simonetta" rel="stylesheet">
        <title>
            Exemplo de Script de cotação do dólar
        </title>
    </head>
    <body style="font-family: 'Simonetta', cursive;">
        <p>
            <strong>Compra:</strong>
            R$ 
            <?php echo $valorCompra ?> 
            <br/>
            <strong>Venda:</strong>
            R$ 
            <?php echo $valorVenda ?>  
        </p>
        <p>
            <strong>Turismo Compra:</strong>
            R$ 
            <?php echo $valorCT ?> 
            <br/>
            <strong>Turismo Venda:</strong>
            R$ 
            <?php echo $valorVT ?>  
        </p>
        <p>
            <strong>Euro Compra:</strong>
            R$ 
            <?php echo $valorCE ?> 
            <br/>
            <strong>Euro Venda:</strong>
            R$ 
            <?php echo $valorVE ?>  
        </p>
        <h2>
            Exemplo de câmbio:
        </h2>
        <label>Digite o valor em reais:</label>
        <input type="text" id="converte" placeholder="1.00" onKeyUp="cambio()" style="width:50px">
        <span id="resultado">0.00</span>
        <script>
            function cambio()
            {
                var valorDolarVenda = <?php echo $valorVendaCalculavel ?>;
                var valorReais   = document.getElementById('converte').value;
                if (document.getElementById('converte').value == '') valorReais = 0;
                var valorCambio = valorReais * valorDolarVenda;
                document.getElementById('resultado').innerHTML = valorCambio.toFixed(2);
            }
        </script>
    </body>
</html>
    
05.06.2017 / 17:52
1

In PHP you need to update this code because the Infomoney website has changed ....

<?php

  if(!$fp=fopen("https://www.infomoney.com.br/mercados/cambio" , "r" )) 
  {
    echo "Erro ao abrir a página de cotação" ;
    exit;
  }

  $conteudo = '';
  while(!feof($fp)) 
  { 
    $conteudo .= fgets($fp,1024);
  }
  fclose($fp);

  $valorCompraHTML = explode('<td><span>', $conteudo); 
  $valorCompra = trim(strip_tags($valorCompraHTML[1]));
  $valorVendaHTML = explode('+', strip_tags($valorCompraHTML[2]));

// Dolar comercial posicao 1 e 2
// Euro posicao 7 e 8
// Peso Argentino Posicao 13 e 14

  //Estes são os valores HTML para exibir no site.  
  $valorVendaHTML = explode('-', $valorVendaHTML[0]);
  $valorVenda  = trim($valorVendaHTML[0]) ;

  //Estes são os valores numéricos para cálculos.     
  $valorCompraCalculavel = str_replace(',','.', $valorCompra);
  $valorVendaCalculavel  = str_replace(',','.', $valorVenda);

?>
    
27.02.2018 / 14:42