Tôi nhận thấy rằng Google đã xóa API tài chính cho Google App Engine. Tất cả những gì tôi muốn là danh sách các mã cổ phiếu mà họ có trong danh mục đầu tư của Google Finance. Có cách nào để vẫn lấy dữ liệu này từ danh mục đầu tư của người dùng cuối hay không, vì API đã bị xóa? Tôi đang cố truy xuất nó theo cách thủ công vì tôi biết thông tin đăng nhập và mật khẩu (ví dụ: đó là của riêng tôi).cách truy cập danh mục đầu tư của Google Finance của người dùng?
Có cách nào để truy xuất thủ công thông qua curl, bằng cách đăng nhập vào các dịch vụ của Google không? Có vẻ như có thể đăng nhập và truy cập trang danh mục của tôi, truy xuất nguồn.
Tôi đã thử đoạn mã sau:
#!/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
Tuy nhiên, mã này chỉ lấy một trang đó nói với tôi để đăng nhập Các giải pháp không cần phải sử dụng curl, nhưng nó phải là một hồi tự động sử dụng. một số ngôn ngữ kịch bản.
Nhờ x4avier, tôi đã học về casperjs và đã có thể viết một kịch bản nhanh chóng để tải các dịch vụ của Google trang đăng nhập, nhập tên người dùng và mật khẩu, và sau đó lấy danh mục Google Finance. Tôi chắc rằng điều này sẽ hoạt động với bất kỳ trang và dịch vụ google nào khác. Tôi lưu html của danh mục đầu tư vào portfolio.html. Hy vọng rằng điều này sẽ giúp người khác cũng có.
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();
Xem http://stackoverflow.com/questions/10040954/alternative-to-google-finance-api –
API tài chính của Yahoo cũng không cho phép truy cập vào danh mục đầu tư của người dùng – gnychis
Bạn cần triển khai ứng dụng khách lưu trữ cookie, chạy javascript và xử lý chuyển hướng nếu bạn muốn đăng nhập vào Tài khoản Google. Tại sao không chỉ xuất khẩu các biểu tượng ticker bằng tay và sau đó cạo các API công cộng để có được báo giá cá nhân. API công khai vẫn hoạt động và có thể sẽ hoạt động trong ít nhất 3 năm nữa theo các chính sách của Google. https://www.google.com/finance/info?q=NASDAQ:AAPL –