iOS: как найти один конкретный тег на странице HTML - PullRequest
0 голосов
/ 28 апреля 2018

Я анализирую веб-сайт и хочу прочитать одну конкретную HTML-часть этого веб-сайта. Я ищу один (и только один) тег <frame>:

<frame scrolling="auto" ... src=”I need this text">

Так что мне нужен только текст в src = "". Но как я могу сделать это как можно проще? До сих пор я пытался проанализировать строку по:

NSString  *html = [self.webview stringByEvaluatingJavaScriptFromString: @"document.body.innerHTML"];

Но HTML остается пустым, и я не знаю, как продолжить. Итак, как я могу сделать это как можно проще, используя мой веб-просмотр?

1 Ответ

0 голосов
/ 29 апреля 2018

Примерно так может работать:

document.addEventListener("DOMContentLoaded", function() {
    var allFrames = document.querySelectorAll("frame");
    if (allFrames.length) {
        var src = allFrames[0].src;
        console.log(src);

        var request = new XMLHttpRequest();
        request.open("GET", "my-app://localhost/?src=" + encodeURIComponent(src));
        request.send(null);

    } else {
        console.log("no frames on the page " + location.href);  
    }
});

Запустите этот код, используя stringByEvaluatingJavaScriptFromString из обратного вызова webViewDidFinishLoad, и обработайте выходные данные из сценария, используя обратный вызов shouldStartLoadWithRequest.

Вы видите журнал и отлаживаете скрипт с помощью Safari Web Inspector (как для симулятора, так и для устройства).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...