gpt4 book ai didi

google-api - 如何访问用户的 Google 财经投资组合?

转载 作者:行者123 更新时间:2023-12-03 22:36:48 28 4
gpt4 key购买 nike

我注意到 Google 删除了 Google App Engine 的 Finance API。我想要的只是他们在 Google 财经投资组合中的股票代码列表。考虑到 API 已被删除,有没有办法仍然从最终用户的投资组合中提取这些数据?鉴于我知道登录名和密码(例如,这是我自己的),我正在尝试手动检索它。

有没有办法通过 curl 手动检索它,登录到谷歌服务?似乎应该可以登录并转到我的投资组合页面,检索源。

我尝试了以下代码:

#!/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

但是,这段代码只检索了一个告诉我登录的页面。解决方案不需要使用curl,但必须是使用某种脚本语言的自动检索。

感谢 x4avier,我了解了 casperjs,并且能够编写一个快速脚本来加载 Google 服务登录页面,输入用户名和密码,然后获取 Google 财经投资组合。我确信这适用于任何其他谷歌服务和页面。我将投资组合的 html 保存到portfolio.html。希望这对其他人也有帮助。
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: 'youraccount@gmail.com',
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();

最佳答案

你应该考虑使用像 casper.js 这样的 headless 浏览器.

有了它,您可以登录到 google,转到 google Finance 并获取页面或特定 css 选择器的 html。

要登录,您将使用 fill()函数,它的工作原理是这样的:

casper.start('http://admin.domain.tld/login/', function() {
this.fill('form[id="login-form"]', {
'username': 'chuck',
'password': 'n0rr1s'
}, true);
});

casper.run();

然后就可以用 getHTML()解析页面和具体内容,工作如下:
casper.then(function() {
this.echo(this.getHTML('h1#foobar')); // => 'The text included in the <h1 id=foobar>'
});

CasperJs 使用 cookie 并探索多个页面,它应该适合您的需求。

希望能帮助到你 :)

关于google-api - 如何访问用户的 Google 财经投资组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16509443/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com