Ho notato che Google ha rimosso l'API Finanza per Google App Engine. Tutto ciò che voglio è un elenco di ticker azionari che hanno nel proprio portfolio di Google Finance. C'è un modo per estrarre ancora questi dati dal portafoglio dell'utente finale, dato che l'API è stata rimossa? Sto cercando di recuperarlo manualmente dato che conosco il login e la password (ad esempio, è il mio).come accedere al portafoglio di Google Finance dell'utente?
C'è un modo per recuperarlo manualmente tramite arricciatura, accedendo ai servizi di Google? Sembra che dovrebbe essere possibile accedere e andare alla mia pagina portfolio, recuperando la fonte.
Ho provato il seguente codice:
#!/bin/bash
function ClientLogin() {
read -p 'Email> ' email
read -p 'Password> ' -s password
local service=$1
curl -s -d Email=$email -d Passwd=$password -d service=$service https://www.google.com/accounts/ClientLogin | tr ' ' \n | grep Auth= | sed -e 's/Auth=//'
}
function GetFinance() {
curl -L -s -H "Authorization: GoogleLogin auth=$(ClientLogin finance)" "http://www.google.com/finance/portfolio?action=view&pid=1" &> output.html
}
GetFinance
Tuttavia, questo codice recupera solo una pagina che mi dice di login La soluzione non ha bisogno di usare curl, ma deve essere un recupero automatico utilizzando. qualche linguaggio di scripting.
Grazie a x4avier, ho imparato a conoscere casperjs ed era in grado di scrivere uno script veloce per caricare i servizi di Google pagina di accesso, inserire il nome utente e la password, e poi prendere il portafoglio Google Finance. Sono sicuro che ciò funzionerebbe con qualsiasi altro servizio e pagina di Google. Risparmio l'html del portfolio su portfolio.html. Spero che questo aiuti anche qualcun altro.
var fs = require('fs');
var failed = [];
var links = [
"https://www.google.com/finance/portfolio?action=view&pid=13"
];
var casper = require('casper').create({
verbose: true,
logLevel: 'debug',
pageSettings: {
loadImages: false, // The WebPage instance used by Casper will
loadPlugins: false, // use these settings
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537
}
});
// print out all the messages in the headless browser context
casper.on('remote.message', function(msg) {
this.echo('remote message caught: ' + msg);
});
// print out all the messages in the headless browser context
casper.on("page.error", function(msg, trace) {
this.echo("Page Error: " + msg, "ERROR");
});
var url = 'https://accounts.google.com/ServiceLogin?service=finance';
casper.start(url, function() {
// search for 'casperjs' from google form
console.log("page loaded");
this.test.assertExists('form#gaia_loginform', 'form is found');
this.fill('form#gaia_loginform', {
Email: '[email protected]',
Passwd: 'yourpass'
}, true);
});
casper.each(links, function(casper, link) {
this.then(function() {
this.test.comment("Loading " + link);
start = new Date();
this.open(link);
});
this.then(function() {
var message = this.requestUrl + " loaded";
if (failed.indexOf(this.requestUrl) === -1) {
this.test.pass(message);
fs.write('portfolio.html',this.getPageContent(),'w');
}
});
});
casper.run();
Vedere http://stackoverflow.com/questions/10040954/alternative-to-google-finance-api –
Yahoo finance API non consente inoltre l'accesso al portafoglio dell'utente – gnychis
È necessario implementare un client che memorizza i cookie, viene eseguito javascript e gestisce i reindirizzamenti se desideri accedere a un account Google. Perché non esportare i simboli ticker manualmente e quindi raschiare l'API pubblica per ottenere preventivi individuali. L'API pubblica funziona ancora e probabilmente funzionerà per almeno altri 3 anni in base alle norme di Google. https://www.google.com/finance/info?q=NASDAQ:AAPL –