网页flash文本抓取器(我一直在尝试通过以下方式获取任何网页的文本内容)
优采云 发布时间: 2022-01-04 19:04网页flash文本抓取器(我一直在尝试通过以下方式获取任何网页的文本内容)
我一直在尝试通过以下方式获取任何网页的文本内容:
func getTextContentFromUrl (url: URL) -> String? {
var content = ""
do {
content = try String(contentsOf: url)
} catch {
return nil
}
return content
}
[如果网页收录html/body标签内的文字,效果很好,但如果网页只收录javascript,如[],则不行
我知道 Swifter,但我可能无法编写数百个 API 来访问任何 Web网站:twitter、facebook、linkedin、quora、amazon 等。显然,WKWebView 视图知道如何显示和打印它的文本,所以我尝试获取 WKWebView 的文本内容:
((1)不幸的是,即使我从 webView 调用它,下面的方法总是返回 "" (_ webView: WKWebView, didFinish navigation: WKNavigation!):]]
func getTextContentFromWebView () -> String {
var content = ""
myWKWebView.evaluateJavaScript("document.documentElement") { (string, error) in
if string != nil {
content = string as! String
}
}
return content
}
<p>我尝试过在Web上发布此代码的变体,例如“ document.body.textContent”,“ document.body.innerText”,“ document.body.outerHTML”,“ document.body.innerHTML”,但是这种方法总是返回“” ...</p>
((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
<p>[如果任何人都可以通过任何网络浏览器手动复制和粘贴并打印任何网页的文本内容,而不管其内容(html / javascript),则应该有一种通用的,易于记录的通用方法来从WKWebView中获取文本,是吗?</p>
我一直在尝试通过以下方法获取任何网页的文本内容:func getTextContentFromUrl(url: URL) -> string? {var content = "" do {content = try String(contentsOf: url)} ...
解决方案:
我明白了: