Swift中的Web文本抓取器

问题描述 投票:0回答:1

我一直在尝试通过以下方式获取any网页的文本内容:

func getTextContentFromUrl (url: URL) -> String? {
    var content = ""
    do {
       content = try String(contentsOf: url)
    } catch {
       return nil
    }
    return content
}

[如果网页包含html / body标签内的文本,效果很好,但是如果网页仅包含javascript,例如[https://twitter.com/search?q=tesla&src=typed_query],则不可以

我了解Swifter,但我可能无法编程数百种API来访问任何Web网站:twitter,facebook,linkedin,quora,amazon等。显然,WKWebView视图知道如何显示和打印其文本,因此我尝试获取WKWebView的文本内容:

((1)不幸的是,即使我从webView调用它,以下方法也总是返回“”(_ webView:WKWebView,didFinish导航:WKNavigation!):]]

func getTextContentFromWebView () -> String {
    var content = ""
    myWKWebView.evaluateJavaScript("document.documentElement") { (string, error) in
        if string != nil {
            content = string as! String
        }
    }
    return content
}

我尝试过在Web上发布此代码的变体,例如“ document.body.textContent”,“ document.body.innerText”,“ document.body.outerHTML”,“ document.body.innerHTML”,但是这种方法总是返回“” ...

((2)我也曾尝试使用剪贴板获取文本内容(myWKWebView.SelectAll(),myWWKWebView.copy()),但myWKWebView.copy()始终会发送异常(即使此方法应该可以适用于任何NSView,如Apple的文档所述):

2020-03-13 15:21:26.251341+0100 Text Miner[7313:603242] -[WKWebView copyWithZone:]: unrecognized selector sent to instance 0x101b815c0

[如果任何人都可以通过任何网络浏览器手动复制和粘贴并打印任何网页的文本内容,而不管其内容(html / javascript),则应该有一种通用的,易于记录的通用方法来从WKWebView中获取文本,是吗?

我一直在尝试通过以下方式获取任何网页的文本内容:func getTextContentFromUrl(url:URL)->字符串吗? {var content =“” do {content = try String(contentsOf:url)} ...

swift wkwebview webgrabber
1个回答
0
投票

我知道了:

© www.soinside.com 2019 - 2024. All rights reserved.