2017-01-03 25 views
1

У меня есть компонент TIDHttp (Indy), извлекающий веб-сайт, откуда я могу получить текст html для анализа и отображения данных в форме delphi.Как выполнить функцию javascript на delphi TIDHttp (indy)?

Код работает нормально, но когда найдено более 10 записей, на веб-сайте отображается ссылка на функцию javascript Next(), которая загружает следующие 10 записей и так далее.

Есть ли что-то, что я могу сделать с TIDHttp для выполнения функции next()?

Код 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

См. Возможно: [Комо-автобус um endereço por CEP nos Correios?] (Http://pt.stackoverflow.com/questions/400/como-buscar-um-endere%C3%A7o-por-cep-nos-correios) –

+1

Спасибо за ответ. Я уже прочитал эти сообщения. Они используют неофициальную базу данных «Correios», а «Correios» не предлагают веб-сервисы. –

ответ

3

Инди библиотека связи. Он не имеет никаких средств для выполнения сценария на стороне клиента. Для этого вам нужно будет использовать другую библиотеку.

Безошибочный браузер будет идеальным решением. Более тяжелое решение будет заключаться в том, чтобы встроить браузер в скрытую форму и заставить его выполнять работу. Для этой цели вы можете использовать TWebBrowser, Chromium и т. Д.

+0

Благодарим вас за ответ. Как вы думаете, мне нужно будет симулировать щелчок по ссылке? Можете ли вы быть более конкретным? –

+1

Если вы хотите, чтобы код за кнопкой выполнялся, тогда да, подделка щелчка этой кнопки была бы хорошим способом для этого. –