Zauważyłem, że Google usunął interfejs API finansów dla Google App Engine. Wszystko czego chcę, to lista giełd papierów wartościowych, które mają w swoim portfelu Google Finance. Czy istnieje sposób, aby nadal pobierać te dane z portfolio użytkownika końcowego, biorąc pod uwagę, że interfejs API został usunięty? Próbuję ręcznie go pobrać, ponieważ znam login i hasło (np. Moje własne).sposób dostępu do portfela Google Finance użytkownika?
Czy istnieje sposób na odzyskanie go ręcznie poprzez zwinięcie, logując się do usług Google? Wygląda na to, że powinno być możliwe zalogowanie się i przejście do strony mojego portfolio, pobranie źródła.
Próbowałem następujący kod:
#!/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
Jednak ten kod pobiera tylko stronę, która każe mi się zalogować Rozwiązanie nie trzeba używać pozwijane, ale musi to być zautomatyzowane pobieranie użyciu. jakiś język skryptowy.
Dzięki x4avier, dowiedziałem się o casperjs i był w stanie napisać krótki skrypt, aby załadować usługi Google zalogować stronie wprowadź nazwę użytkownika i hasło, a następnie pobrać portfel Google Finance. Jestem pewien, że działałoby to z każdą inną usługą i stroną Google. Zapisz html portfolio w portfolio.html. Mam nadzieję, że to pomoże również komuś innemu.
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();
Zobacz http://stackoverflow.com/questions/10040954/alternative-to-google-finance-api –
Yahoo finance API również nie pozwala na dostęp do portfolio użytkownika – gnychis
Musisz zaimplementować klienta, który przechowuje pliki cookie, działa javascript i obsługuje przekierowania, jeśli chcesz zalogować się na konto Google. Dlaczego nie wyeksportować symboli ticker ręcznie, a następnie zeskrobać publiczny API, aby uzyskać indywidualne oferty. Publiczny interfejs API nadal działa i prawdopodobnie będzie działał przez co najmniej kolejne 3 lata, zgodnie z zasadami Google. https://www.google.com/finance/info?q=NASDAQ:AAPL –