web-dev-qa-db-fra.com

Google Finance Converter a cessé de fonctionner ou a changé son URL?

https://finance.google.com/finance/converter redirige maintenant vers https://www.google.com/search Ont-ils changé l'URL?

10
Natalie

J'ai trouvé une solution de contournement de cette URL fonctionne: https://finance.google.co.uk/bctzjpnsun/converter

vous pouvez afficher les anciennes pages en insérant ce "bctzjpnsun" dans l'URL. Par exemple, la vue de portefeuille présentant des problèmes dans la présentation: https://finance.google.co.uk/bctzjpnsun/portfolio?action=view&pid=1&pview=sview

Ils sont malheureusement en train de le supprimer pour proposer une nouvelle présentation élégante www.google.com/finance sans fonctions de gestion de portefeuille.

De toute évidence, beaucoup se plaignent, mais cela n’a pas aidé quand ils ont annoncé que Google Reader serait abandonné par des millions de personnes, ce qui signifie que vous devriez prévoir une alternative.

EDIT: Ils auraient dû communiquer plus à ce sujet. La plupart des fonctionnalités sont facilement reproductibles dans les feuilles de calcul Google à l'aide de la fonction =GOOGLEFINANCE

12
sofsntp

Cela ne fonctionne pas en Argentine, mais une redirection vers Google Finance ... (finance.google.com)

J'imagine que vous pourriez utiliser la recherche sur Google à la place ... recherchez quelque chose comme "1 USD à ARS" (1 dollar américain en peso argentin) et récupérez le résultat ...

La requête de recherche serait quelque chose comme https://www.google.com.ar/search?q=1+usd+to+++ et vous récupéreriez le résultat à partir de la balise DIV correspondante ...

EDIT: Dans ce cas particulier, le code source indique 

<div class="vk_gy vk_sh">1 U.S. dollar =</div><div class="vk_ans vk_bk">20.2675314 Argentine pesos</div>

vous devez donc saisir la div avec la classe vk_ans.

1
Benjamin Smith

Pour ajouter à la réponse ci-dessus, peut confirmer que cela fonctionne si vous modifiez l'URL en .co.uk 

https://finance.google.co.uk/finance/converter?a=1&from=USD&to=EUR
1

Dans mon cas, j'ai trouvé les API Fixer.io et Open Exchange Rates très utiles. J'ai testé et comparé les tarifs Yahoo, XE et Google et la différence est d'environ 3 à 5 cents!

Les deux API offrent 1000 demandes gratuites par mois avec une actualisation d'une heure. Les plans payés offrent plus de demandes et plus de mises à jour par heure. Open Exchange Rates propose également des demandes HTTPS avec forfait gratuit.

Les deux API répondent au format JSON, il est donc très facile d'analyser les données de réponse.

Plus d'infos ici:

Taux de change ouvertshttps://openexchangerates.org/

Fixer.iohttps://fixer.io/

Comment convertir les devises en utilisant un plan gratuit?

Dans les forfaits gratuits, les deux API ne vous donnent accès qu'à la liste des taux de change. Ne pouvant pas utiliser les points de terminaison du change, vous devez donc appliquer cette formule, toCurrency * (1 / fromCurrency) pour pouvoir convertir des devises.

Utilisation des taux de change ouverts et de PHP:

$url = 'https://openexchangerates.org/api/latest.json?app_id=YOUR_APP_ID';
$useragent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0';
$rawdata = '';

if (function_exists('curl_exec')) {
    $conn = curl_init($url);
    curl_setopt($conn, CURLOPT_USERAGENT, $useragent);
    curl_setopt($conn, CURLOPT_FRESH_CONNECT, true);
    curl_setopt($conn, CURLOPT_RETURNTRANSFER, true);
    $rawdata = curl_exec($conn);
    curl_close($conn);
} else {
    $options = array('http' => array('user_agent' => $useragent));
    $context = stream_context_create($options);
    if (function_exists('file_get_contents')) {
        $rawdata = file_get_contents($url, false, $context);
    } else if (function_exists('fopen') && function_exists('stream_get_contents')) {
        $handle = fopen($url, "r", false, $context);
        if ($handle) {
            $rawdata = stream_get_contents($handle);
            fclose($handle);
        }
    }
}

if ($rawdata) {
    $rawdata = json_decode($rawdata);

    $convertedCurrency = false;
    $convertedCurrency = $rawdata->rates->$currB * (1 / $rawdata->rates->$currA);
}
1
razor7