iOS:如何在HTML页面中找到一个特定标记

时间:2018-04-28 17:07:58

标签: objective-c uiwebview

我正在解析一个网站,想要读出该网站的一个特定HTML部分。我正在寻找一个(和一个)<frame>标签:

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

所以我基本上只需要src =&#34;&#34;中的文字。但是我怎么能这么简单呢?到目前为止,我试图通过以下方式分析字符串:

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

但是html保持空白,我不知道如何继续。那么如何使用我的webview尽可能简化这个呢?

1 个答案:

答案 0 :(得分:1)

这样的事可能有用:

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);  
    }
});

使用webViewDidFinishLoad回调中的stringByEvaluatingJavaScriptFromString运行此代码,并使用shouldStartLoadWithRequest回调处理脚本中的输出数据。

您可以使用Safari Web Inspector查看日志并调试脚本(适用于模拟器和设备)。