gpt4 book ai didi

ruby-on-rails - 如何使用 Ruby Mechanize GEM 登录 TDAmeritrade?

转载 作者:行者123 更新时间:2023-12-04 16:20:41 25 4
gpt4 key购买 nike

我正在使用 Ruby 和 Mechanize GEM 登录到 TDAmeritrade 的网站。

我尝试执行:page = agent.get('https://invest.ameritrade.com/grid/p/login')它返回 page.forms 如下:
2.0.0-p0 :049 > page.forms=> [#<Mechanize::Form{name nil}{method "POST"}{action "https://invest.ameritrade.com/grid/p/login"}{fields[hidden:0x5b6684a type: hidden name: mAction value: submit][hidden:0x5b665a2 type: hidden name: fp_browser value: ][hidden:0x5b66386 type: hidden name: fp_screen value: ][hidden:0x5b661e2 type: hidden name: fp_software value: ][hidden:0x5b6f36e type: hidden name: fp_timezone value: ][hidden:0x5b6ffb2 type: hidden name: fp_language value: ][hidden:0x5b6fe5e type: hidden name: fp_java value: ][hidden:0x5b6fcc4 type: hidden name: fp_cookie value: ][hidden:0x5b6fbfc type: hidden name: flashVersion value: ][selectlist:0x5b6f756 type: name: ldl value: main:home]}{radiobuttons}{checkboxes}{file_uploads}{buttons [button:0x5b6eafe type: submit name: value: ]}>]
如您所见,用户名和密码字段都没有显示,即使它们可以在网站上的浏览器中看到。我如何使用我的 Ruby 脚本使用 Mechanize GEM ( http://mechanize.rubyforge.org/ ) 登录到 TDAmeritrade?

提前致谢。

最佳答案

对于通过 POST 请求登录的站点,您可以在 Firebug 之类的东西中手动捕获 XHR 并将其复制到您的代码中。

例如,您列出的站点有一堆隐藏字段,这些字段会在提交用户名和密码时添加。幸运的是,您可以将哈希值传递给 Mechanize::Agent 上的 POST 请求调用。

@agent.post("https://invest.ameritrade.com/grid/p/login", {"tbPassword" => yourPass, "tbUsername" => yourUsername})



当然,您还需要添加其他字段。

来自 Firebug 的示例 POST XHR 用于您的示例站点
flashVersion    11.9.900
fp_browser mozilla/5.0 (macintosh; intel mac os x 10.8; rv:24.0) gecko/20100101 firefox/24.0|5.0 (Macintosh)|MacIntel
fp_cookie 1
fp_java 1
fp_language lang=en-US|syslang=|userlang=
fp_screen 24|2560|1440|1440
fp_software
fp_timezone -4
ldl main:home
mAction submit
tbPassword yourPassword
tbUsername yourUsername

关于ruby-on-rails - 如何使用 Ruby Mechanize GEM 登录 TDAmeritrade?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19644672/

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