2017-01-03 1 views
1

웹 사이트를 검색하는 TIDHttp (Indy) 구성 요소가 있습니다. 여기서 html 텍스트를 파싱하고 데이터를 수집하여 델파이 형식으로 표시합니다.TIDHttp (indy) delphi에서 javascript 함수를 실행하는 방법?

코드는 정상적으로 작동하지만 10 개가 넘는 레코드가 발견되면 다음 10 개의 레코드를로드하는 Next() JavaScript 함수에 대한 링크가 웹 사이트에 표시됩니다.

next() 함수를 실행하기 위해 TIDHttp로 할 수있는 것이 있습니까? 다음과 같이 HTML 텍스트를 retreave을 사용하여

코드 미안은 다음과 같습니다

  procedure TForm1.ObtemStringsCorreio(aParamEntrada:string; var aRetorno:TStringList); 
      var 
      _ParamList : TStringList; 
      begin 
       _ParamList := TStringList.Create; 

       _ParamList.Add('cepEntrada=' + aParamEntrada); 
       _ParamList.Add('tipoCep=ALL'); 
       _ParamList.Add('cepTemp='); 
       _ParamList.Add('metodo=buscarCep'); 
       try 
       aRetorno.Text := idhtp1.Post(cEngineCorreios, _ParamList); 
       mmo1.Lines.Clear; 
       mmo1.Text := aRetorno.Text; 
       finally 
       _ParamList.Free; 
       end; 
      end; 
+1

콘텐츠를 위해 웹 사이트를 긁어 모으는 것처럼 보입니다. 데이터에 직접 액세스 할 수있는 API가 없다고 확신합니까? 스크래핑은 최후의 수단으로 사이트 소유자가 일반적으로 권장하지 않으며 자연적으로 약합니다. –

+0

아마도 : [Correios CEP nos Correios의 코메디 버스?] (http://pt.stackoverflow.com/questions/400/como-buscarum-endere%C3%A7o-por-cep-nos-correios) –

+1

답변 해 주셔서 감사합니다. 나는 이미 그 글을 읽었습니다. 그들은 공식적인 "Correios"데이터베이스를 사용하지 않으며 "Correios"는 웹 서비스를 제공하지 않습니다. –

답변

3

인디는 통신 라이브러리입니다. 클라이언트 사이드 스크립트 실행을위한 어떤 수단도 없습니다. 이를 위해 다른 라이브러리를 사용해야합니다.

헤드리스 브라우저가 이상적인 솔루션입니다. 헤비급 솔루션은 브라우저를 숨겨진 형식으로 포함시키고 작업을 수행하는 것입니다. 이 목적으로 TWebBrowser, Chromium 등을 사용할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 내가 링크 버튼을 클릭 시뮬레이션해야한다고 생각합니까? 좀 더 구체적 일 수 있습니까? –

+1

버튼 뒤에있는 코드를 실행하려면 예를 클릭하면 해당 버튼을 가짜로 만드는 것이 좋습니다. –

관련 문제