2009-12-14 2 views
0

나는 내 주식 포트폴리오를 스크립트로 읽으려고합니다. 다음은 NAB Online Trading에서 작동하지만 Bell Direct에서는 작동하지 않습니다.내 주식 포트폴리오를 wget하려고합니다

  • 파일로 도메인 쿠키를 저장 파이어 폭스 내 온라인 브로커의 Export Domain Cookies 파이어 폭스 부가 기능을
  • 설치 로그 (예 cookies.txt)
  • wget --no-check-certificate --load-cookies=cookies.txt -O folio.htm https://... (포트폴리오 URL)

- 아이디어는 브라우저의 로그인 세션을 재사용하는 것입니다. Bell Direct로 시도하면 wget이 로그인 페이지로 리디렉션됩니다. curl과 같은 결과가 나옵니다. 내가 뭘 놓치고 있니? 쿠키 외에 브라우저에 저장된 상태가 있습니까? 로그인 페이지가 사용자 이름/암호의 양식이기 때문에 Bell은 "기본 인증"을 사용하지 않습니다. 브라우저의 기본 로그인 대화 상자가 나타나지 않습니다. 여기

은 (Cygwin을 사용하여 Windows XP에서) 일어나는 것입니다 :

$ 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/[email protected]':
Unable to locally verify the issuer's authority.
HTTP request sent, awaiting response...
,
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,123,959,152,

+0

시험/허위 로그인을 제공 할 수있는 기회가 있으십니까? –

답변

1

아마도 서버는 사용자 에이전트와 쿠키를 기반으로 세션의 유효성을 검사하고 있습니다. Firefox가 설치되어있는 사용자 에이전트 (사용자가 모르면 WhatIsMyUserAgent.com을 사용)를 확인하고 Wget 호출에서 똑같은 사용자 에이전트를 사용하십시오 (--user-agent = "... "매개 변수).

+0

그래, 그랬어. –

0

당신은 그 쿠키, 내부 페이지를 고토, 다음, 로그인 폼 변수를 POST 할 필요가있다.

http://www.trap17.com/index.php/automatic-login-curl_t38162.html 일부 예제 코드.

+0

하지만 이미 브라우저를 사용하여 로그인했습니다. 브라우저가 로그인 세션에 저장 한 상태를 사용하여 포트폴리오 페이지를 가져 오려고합니다. BTW 나는 당신의 연결을 따랐다. 그리고 그것은 당신이 의도 한 것 같지 않았다. –

0

로그인은 HTTPS 프로토콜을 통해 암호화되며 사용자는 인증서를 제공하지 않습니다. 아마 belldirect는 클라이언트 인증에 유효한 인증서를 필요로합니다.

URL> 추가 정보> 보안 탭> 인증서보기> 상세 정보> 내보내기의 강조 표시된 파란색 부분을 클릭하여 Firefox에서 인증서를 내보낼 수 있습니다. 그런 다음 --certificate=filename 옵션을 사용하여 wget 명령에서 내 보낸 인증서를 지정할 수 있습니다.

+0

나는 ("Save as Type"에 대한 다양한 옵션을 시도하면서) 시도했지만'www.belldirect.com.au의 인증서를 확인할 수 없다 ': ( –

0

어쩌면 리퍼러도 설정해야합니다.

관련 문제