2017-01-03 90 views
1

我有一個TIDHttp(Indy)組件,檢索一個網站,從那裏我得到的HTML文本解析和數據收集顯示爲德爾福的形式。如何在TIDHttp(indy)delphi上執行javascript函數?

的代碼工作正常,但是當發現超過10分的記錄,該網站顯示一個鏈接到下一個()的JavaScript加載在未來10 recordsand等funcition。

是否有東西,我可以爲了執行next()函數與TIDHttp呢?

代碼I'm使用到retreave HTML文本如下:

  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

也許:查看可能是:[COMO buscar umendereçopor CEP nos Correios?](http://pt.stackoverflow.com/questions/400/como-buscar-um-endere%C3%A7o-por-cep-nos-correios) –

+1

感謝您的回答。我已經閱讀過這些帖子。他們使用非官方的「Correios」數據庫,「Correios」不提供Web服務。 –

回答

3

印是一個通信庫。它沒有任何客戶端腳本執行的手段。你將需要使用另一個庫。

無頭瀏覽器將是理想的解決方案。更重要的解決方案是將瀏覽器嵌入到隱藏的表單中,並讓它完成工作。您可以使用TWebBrowser,Chromium等來達到此目的。

+0

謝謝你的回答。你認爲我必須模擬點擊鏈接按鈕嗎?你能更具體一點嗎? –

+1

如果你想讓按鈕後面的代碼執行,那麼是的,假裝點擊該按鈕將是一個很好的方法來實現這一點。 –