我正在尝试将我的股票投资组合读入一个脚本。以下内容适用于NAB在线交易,但不适用于Bell Direct。
cookies.txt
)wget --no-check-certificate --load-cookies=cookies.txt -O folio.htm https://...
(投资组合网址) - 想法是重用浏览器的登录会话。当我使用Bell Direct尝试时,wget
被重定向到登录页面。我使用curl
得到了相同的结果。我错过了什么?除了cookie之外,是否存在一些存储在浏览器中的状态? Bell没有使用“基本身份验证”,因为登录页面是用户名/密码的表单 - 它不会弹出浏览器的内置登录对话框。
以下是发生的事情(在Windows XP下使用Cygwin):
$ wget --server-response --no-check-certificate --load-cookies=cookies-bell.txt -O folio-bell.htm https://www.belldirect.com.au/trade/portfoliomanager/
--2009-12-14 10:52:08-- https://www.belldirect.com.au/trade/portfoliomanager/
Resolving www.belldirect.com.au... 202.164.26.80
Connecting to www.belldirect.com.au|202.164.26.80|:443... connected.
WARNING: cannot verify www.belldirect.com.au's certificate, issued by '/C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Server CA/emailAddress=server-certs@thawte.com':
Unable to locally verify the issuer's authority.
HTTP request sent, awaiting response...
HTTP/1.1 302 Found
Connection: keep-alive
Date: Sun, 13 Dec 2009 23:52:16 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Location: /account/login.html?redirect=https://www.belldirect.com.au/trade/portfoliomanager/index.html
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 229
Location: /account/login.html?redirect=https://www.belldirect.com.au/trade/portfoliomanager/index.html [following]
...
答案 0 :(得分:1)
也许服务器正在基于User-Agent和cookie验证会话。检查您的Firefox安装使用的用户代理(如果您不知道,可以使用WhatIsMyUserAgent.com),并尝试在Wget调用中使用完全相同的用户代理(通过--user-agent =“... “参数)。
答案 1 :(得分:0)
您需要POST登录表单变量,然后使用这些cookie转到内页。
http://www.trap17.com/index.php/automatic-login-curl_t38162.html了解一些示例代码。
答案 2 :(得分:0)
登录是通过HTTPS协议加密的,您不提供证书。也许belldirect需要有效的证书进行客户端身份验证。
您可以点击网址>中突出显示的蓝色部分,在Firefox中导出证书。更多信息>安全选项卡>查看证书>详细信息>出口。然后,您可以使用--certificate=filename
选项在wget
命令中指定导出的证书。
答案 3 :(得分:0)
也许您还需要设置推荐人。