Google'ın, Google App Engine için Finans API'sını kaldırdığını fark ettim. Tek istediğim, Google Finans portföyünde sahip oldukları hisse senedi biletlerinin bir listesi. API'nın kaldırıldığından bu veriyi son kullanıcının portföyünden çekmenin bir yolu var mı? Giriş ve şifreyi bildiğimden (örneğin, kendi başıma olduğumdan) emin olarak el ile almaya çalışıyorum.yolu?
Google hizmetlerinde oturum açarak, kıvrılma yoluyla el ile almanın bir yolu var mı? Giriş yapmak ve kaynak sayfamı almak için portföy sayfamıza gitmek mümkün gibi görünüyor.
Aşağıdaki kodu denedi: Ancak
#!/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
, bu kodu yalnızca giriş yapmak için bana söyler bir sayfayı alır çözüm curl kullanmak gerekmez, ancak kullanarak bir otomatik alma olmalıdır. bazı betik dili. x4avier için
sayesinde, casperjs öğrendi ve Google hizmetleri, giriş sayfası yüklemek kullanıcı adı ve şifreyi girin ve ardından Google Finans portföyü getirmesi için hızlı bir senaryo yazmaya başardı. Bunun diğer herhangi bir Google hizmetiyle ve sayfayla çalışacağından eminim. Portföyün html dosyasını portföy.html'ye kaydediyorum. Umarım bu da başka birine yardımcı olur.
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();
http://stackoverflow.com/questions/10040954/alternative-to-google-finance-api bakın –
Yahoo finans API zamanda kullanıcının portföyünde çerezleri depolayan bir müşteri uygulamak gerekir – gnychis
erişime izin vermez, ishal Bir Google Hesabına giriş yapmak istiyorsanız javascript ve yönlendirme yönlendirmeleri. Neden yalnızca ticker sembollerini dışa aktarmıyoruz ve tek tek teklifleri almak için kamu API'sını kazıyın. Genel API hala çalışır ve muhtemelen Google'ın politikaları göz önüne alındığında en az üç yıl daha çalışır. https://www.google.com/finance/info?q=NASDAQ:AAPL –