пытаюсь создать свой портфель акций
Вопрос
Я пытаюсь превратить свой портфель акций в сценарий.Следующее работает с NAB Online Trading, но не Звонок Прямой.
- установите Экспорт файлов cookie Домена Аддон для Firefox
- войдите в мой онлайн-брокер с помощью Firefox
- сохраните файлы cookie домена в файл (например
cookies.txt
) wget --no-check-certificate --load-cookies=cookies.txt -O folio.htm https://...
(URL портфолио)
-- Идея состоит в том, чтобы повторно использовать сеанс входа в систему браузера.Когда я попробую это с 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]
...
Решение
Возможно, сервер проверяет сеанс на основе пользовательского агента, а также файла cookie.Проверьте, какой пользовательский агент используется в вашей установке Firefox (возможно, используйте WhatIsMyUserAgent.com если вы этого не знаете), и попробуйте использовать тот же пользовательский агент в вашем вызове Wget (через параметр --user-agent="...").
Другие советы
Вам нужно ОПУБЛИКОВАТЬ переменные формы входа, затем с этими файлами cookie перейти на внутреннюю страницу.
http://www.trap17.com/index.php/automatic-login-curl_t38162.html для некоторого примера кода.
Вход в систему зашифрован по протоколу HTTPS, и вы не предоставляете сертификат.Возможно, belldirect требует действительный сертификат для аутентификации клиента.
Вы можете экспортировать сертификат в Firefox, щелкнув выделенную синим цветом часть URL-адреса > Дополнительная информация > Вкладка безопасность> Просмотр сертификата> Сведения> Экспорт.Затем вы можете использовать --certificate=filename
возможность указать экспортированный сертификат в вашем wget
команда.
Возможно, вам тоже нужно установить реферера.