gpt4 book ai didi

ios - 使用 Swift 从特定网页检索和解析文本

转载 作者:行者123 更新时间:2023-11-28 11:14:31 24 4
gpt4 key购买 nike

我需要从特定网站检索文本。但是,我只需要它的几个部分。我怎样才能使用 swift 来完成这个。

我在 objective-c 中找到了以下内容,但不确定它提供了如何从特定站点引用它:

NSString *webString = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerText"];
NSScanner *stringScanner = [NSScanner scannerWithString:webString];
NSString *content = [[NSString alloc] init];
while ([stringScanner isAtEnd] == NO) {

[stringScanner scanUpToString:@"Start of the text you want" intoString:null];
[stringScanner scanUpToString:@"End of the text you want" intoString:&content];
}`

我在下面举例说明了我的意思:enter image description here

同样,我想使用 Swift 来完成此操作。

最佳答案

如果您的 HTML 很容易通过标识符或类名定位,我建议您使用 Kanna 之类的库.但是我看过你的页面,你需要的文字在 div 的海洋中丢失了......

所以我很快找到了一种使用 componentsSeparatedByString 获取文本的方法:我将 HTML 分成 block ,直到到达我们感兴趣的部分。

请注意,这远不是最有效的方法:您应该使用一种方法来识别您想要的 HTML block 并使用 NSScanner 搜索它,而不是使用 componentsSeparatedByString

话虽这么说,但这是我在 Playground 中测试的有效 hack 示例:

enum CustomErrors : String, ErrorType {
case InvalidURL = "Invalid URL"
}

do {
let str = "http://www.golfwrx.com/328370/mizuno-to-offer-custom-grips-at-no-additional-charge/"
guard let url = NSURL(string: str) else { throw CustomErrors.InvalidURL }
let html = try String(contentsOfURL: url)
let separator1 = "<div class='mailmunch-forms-before-post' style='display: none !important;'></div><p>"
let temp = html.componentsSeparatedByString(separator1)
let separator2 = "</p>\n<p>"
let temp2 = temp[1].componentsSeparatedByString(separator2)
let separator3 = "</p><div class='mailmunch-forms-in-post-middle'"
let separated = temp2[1].componentsSeparatedByString(separator3)
let result = separated[0]
print(result)
} catch {
print(error)
}

注意:我的示例是在 Swift 2 (Xcode 7) 中。

关于ios - 使用 Swift 从特定网页检索和解析文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32719366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com