Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[15344] Re:Re:HTML파싱 질문입니다.
첫눈 [hadugo] 2326 읽음    2014-12-03 14:35

오랑케꽃님 감사합니다.
이런 컴포는트가 있는 줄은 꿈에도 몰랐습니다.
정말 큰거 배웠습니다.
감사합니다.


오랑캐꽃 님이 쓰신 글 :
: 하두고 님이 쓰신 글 :

: : 타회사 홈페이지를 파싱하여 테이블의 데이터를 가져오려 하는데요.

: :

: : idHTTP를 사용하여 해더를 보내주고

: : 응답을 받아서 확인해 보면 테그에는 아무것도 없습니다.
: :
: : JAVAScript에서 document.write를 이용하여 페이지를 보여주기 때문인데요.
: :
: : 이런경우 어떻게 데이터를 읽어와야 할까요?
: :
: : 이것 때문에 당장은 WEBBrowser오브젝트를 사용하는데 속도도 상당히 느리고
: : 특히 로그인 할때
안에 회원아이디와 암호 테그에 id나 name속성이 없어서
: : 객체 번호를 이용해서 가져와야 하는데
: : 이것도 document.write에서 뿌려주기 때문에 객체번호가 자꾸 바뀌구요.
: :
: : idHTTP에서 받아온 문자열의 자바스크립트를 어떻게 실행해서 페이지를 분석해야 하나요?
:
: 답변에 앞서 미리 말씀드릴 것은... 저도 안써봤다는 것.
: 몇년 전 양병규형님께 스쳐가듯 들은 풍월이 전부입니다.
:
: 윈도에는 Microsoft Script Control 이라는 COM 객체가 들어있습니다.
: 자바스크립트나 비베스크립트를 굴려주는 물건이지요.
:
: http://support.microsoft.com/kb/184740/ko
:
: 델파이 7을 기준으로, Project -> Import Type Library 로 가져와 쓸 수 있습니다.
:
:
:
: 생성된 MSScriptControl_TLB.pas 유니트를 컴포넌트로 등록하면 TScriptControl 이 팔레트에 생성되지요.
:

: 폼 위에 버튼이랑 메모, 그리고 TScriptControl 을 올린 뒤,
: 저 위에 링크한 내용을 기준으로 비베스크립트 호출예제를 델파이로 바꿔보았습니다.
: GlobalModule 얻는부분은 잘 몰라서, 그리고 점심시간이 끝나가므로 패스.
:

:
: procedure TForm1.Button1Click(Sender: TObject);
: var
:   va_Param: Variant;
:   psa_Param: ActiveX.PSafeArray;
: begin
:   with ScriptControl1 do
:   begin
:     // Set script language (VBScript is the default).
:     Language := 'VBScript';
:     // Set UI interaction (TRUE is the default).
:     AllowUI := true;
:     // Copy the script to the control.
:     AddCode(Memo1.Text);
:     // Demonstrate the Eval method.
:     WriteLn(Eval('AddTwo(5,7)'));
:     // Demonstrate the Run method both with and without return values.
: 
:     // Hello("Jane Dow") 호출 테스트.
:     va_Param := VarArrayCreate([0,0], varVariant);
:     va_Param[0] := 'Jane Doe';
:     psa_Param := PSafeArray(TVarData(va_Param).VArray);
:     Run('Hello', psa_Param);
: 
:     // AddTwo(4,6) 호출 테스트.
:     va_Param := VarArrayCreate([0,1], varVariant);
:     va_Param[0] := 4;
:     va_Param[1] := 6;
:     psa_Param := PSafeArray(TVarData(va_Param).VArray);
:     WriteLn(Run('AddTwo', psa_Param)); // Run의 리턴값이 Variant임.
: 
:     // Demonstrate the ExecuteStatement method.
:     ExecuteStatement('Hello "Sue Smith"');
:     ExecuteStatement('AddTwo 9,18');
:     ExecuteStatement('MsgBox CStr(AddTwo(3,8))');
:   end;
: end;
: 

:

: 좀 더 여유가 있으시면... 겁나 빠르다고 소문난 크롬의 V8엔진을 써보시는것도... ^^;;
:

+ -

관련 글 리스트
15342 HTML파싱 질문입니다. 하두고 1945 2014/12/01
15343     Re:HTML파싱 질문입니다. 오랑캐꽃 2838 2014/12/03
15344         Re:Re:HTML파싱 질문입니다. 첫눈 2326 2014/12/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.