/ / Como obter o html da url DEPOIS que o ajax da página terminou - html, ajax, swift, web-scraping, nsurlsessiondatatask

Como obter o html da url DEPOIS que o ajax na página da Web terminou - html, ajax, swift, web-scraping, nsurlsessiondatatask

Eu estou escrevendo um aplicativo no Swift 3.0 e eu estou tentando raspar dados dos resultados da pesquisa de uma página da Web. Eu realizo a pesquisa incluindo a consulta de pesquisa como um parâmetro na url, mas o html que está sendo retornado para mim não tem resultados. Acredito que isso seja porque o ajax na página da Web não terminou e preencheu o HTML com os resultados da pesquisa quando o HTML é retornado ao meu aplicativo.

Questão

Como posso esperar que os resultados da pesquisa sejam carregados antes de obter o html?

EDITAR: URL: https://uscdirectory.usc.edu/web/directory/faculty-staff/#basic=a

Esta url realiza uma pesquisa no diretório USC para o caractere "a". O html no meu navegador no meu MacBook inclui estas tags:

<tbody>(Search results are here)</tbody>

mas no meu aplicativo o html que é retornado para mim não tem nada:

<tbody></tbody>

Isso ocorre porque a página da web inicialmente não temresultados da pesquisa e, em seguida, algum tempo depois, o ajax é concluído e o corpo da tabela é preenchido. Como eu uso um objeto URLSessionDataTask no Swift para esperar até que o ajax termine e APENAS ENTÃO me dê o html, de modo que eu realmente obtenha os resultados da pesquisa?

Respostas:

0 para resposta № 1

Você pode usar a propriedade ajaxComplete () para corrigir isso.

Ex:

$(document).ajaxComplete(function(){
//your code to render HTML
});

Ele renderizará seu HTML apenas quando a solicitação ajax estiver concluída.


0 para resposta № 2

A solução alternativa que eu criei édesagradável mas funcional. Eu criei um WKWebView fora da tela e carreguei a página em que eu estava interessado. Eu usei um Timer para esperar um número arbitrário de segundos para o javascript na página terminar e então eu recuperei o html da webview