Ich habe festgestellt, dass Google die Finance API für Google App Engine entfernt hat. Ich möchte nur eine Liste der Börsenticker, die sie in ihrem Google Finance-Portfolio haben. Gibt es eine Möglichkeit, diese Daten aus dem Portfolio des Endbenutzers zu ziehen, wenn die API entfernt wurde? Ich versuche, es manuell abzurufen, da ich das Login und das Passwort kenne (z. B. es ist mein eigenes).Möglichkeit, auf das Google Finance-Portfolio von Nutzern zuzugreifen?
Gibt es eine Möglichkeit, sie manuell durch curl abzurufen, indem Sie sich bei den Google-Diensten anmelden? Es scheint so, als ob es möglich sein sollte, sich anzumelden und zu meiner Portfolio-Seite zu gehen, um die Quelle abzurufen.
ich den folgenden Code versucht:
#!/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
jedoch ruft dieser Code nur eine Seite, die mir sagt, eingeloggt Die Lösung muss nicht curl verwenden, aber es muss ein automatisierter Abruf werden. einige Skriptsprache.
Dank x4avier lernte ich casperjs und konnte eine schnelle Skript schreiben, die Google-Services Seite anmelden, geben Sie den Benutzernamen und das Passwort zu laden und dann die Google Finance-Portfolio zu holen. Ich bin mir sicher, dass dies mit jedem anderen Google-Dienst und jeder Seite funktionieren würde. Ich speichere den HTML-Code des Portfolios in portfolio.html. Hoffentlich hilft das auch jemand anderem.
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();
Siehe http://stackoverflow.com/questions/10040954/alternative-to-google-finance-api –
Yahoo Finance API erlaubt auch keinen Zugriff auf das Benutzerportfolio – gnychis
Sie müssen einen Client implementieren, der Cookies speichert, läuft JavaScript und behandelt Weiterleitungen, wenn Sie sich bei einem Google-Konto anmelden möchten. Warum nicht einfach die Tickersymbole manuell exportieren und dann die öffentliche API abkratzen, um individuelle Angebote zu erhalten. Das öffentliche API funktioniert immer noch und wird nach den Richtlinien von Google wahrscheinlich noch mindestens 3 Jahre lang funktionieren. https://www.google.com/finance/info?q=NASDAQ:AAPL –