在 Xcode 9 中用 Swift 4 抓取一个 html
Scraping an html with Swift 4 in Xcode 9
好的,我有一个网站,我想抓取特定的 links。
我已经使用 URLSession 将所有网站内容放入一个字符串中。
现在我必须将所有链接放入具有以下结构的数组中:
"
所以我得到一个数组:[href="/thisIsAlwaysTheSame/UniqueNumberA/, href="/thisIsAlwaysTheSame/UniqueNumberB, href="/thisIsAlwaysTheSame/UniqueNumberC, etc.]"
网站上还有很多 link,但我只需要具有这种格式的。
或者,如果我只将 UniqueNumbers 放入数组中,我也会很高兴。
我已经在 reddit 上问过这个问题,但没有得到足够的答案:
https://www.reddit.com/r/swift/comments/7256vi/scraping_an_html_with_swift_4_in_xcode_9/
这是我从我的研究中已经知道的以及 reddit 上的答案:
建议 "Kanna" --> 我无法在 Xcode 9 中得到它 运行 (我已经在 GitHub 上打开了一个问题)
Swift汤可能是一个选项 --> 与 Kanna 一样的问题,在 Xcode 9 中无法得到它 运行(我还打开了一个Github)
上的问题
我得到的建议是我可以使用 Swift 字符串 class 阅读以下 link: https://developer.apple.com/documentation/swift/string -->我阅读了它,但并没有真正了解如何使用这些方法解决我的问题。也许我遗漏了什么?
有什么建议吗?感谢您的帮助!
如果我没理解错的话,您想从 HTML 字符串中提取所有 URL。您可以通过添加一个循环来检查任何 URL 的字符串:
let detector = try! NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue)
let matches = detector.matches(in: content, options: [], range: NSRange(location: 0, length: content.utf16.count))
for match in matches {
let url = (content as NSString).substring(with: match.range)
if url.contains("ThisIsWhatIDontNeed") {
//do smtg
} else {
self.img_urls.append(url)
}
}
我在添加 SwiftSoup 后使用了以下代码:
guard let linkElements: Elements = try SwiftSoup.parse(myLinkHTMLContent).select("a") else {return}
// Now all elements are printed into an array
for element: Element in linkElements.array(){
myLinksArray.append("\(element)")
}
好的,我有一个网站,我想抓取特定的 links。 我已经使用 URLSession 将所有网站内容放入一个字符串中。 现在我必须将所有链接放入具有以下结构的数组中:
"
所以我得到一个数组:[href="/thisIsAlwaysTheSame/UniqueNumberA/, href="/thisIsAlwaysTheSame/UniqueNumberB, href="/thisIsAlwaysTheSame/UniqueNumberC, etc.]"
网站上还有很多 link,但我只需要具有这种格式的。
或者,如果我只将 UniqueNumbers 放入数组中,我也会很高兴。 我已经在 reddit 上问过这个问题,但没有得到足够的答案:
https://www.reddit.com/r/swift/comments/7256vi/scraping_an_html_with_swift_4_in_xcode_9/ 这是我从我的研究中已经知道的以及 reddit 上的答案: "Kanna" --> 我无法在 Xcode 9 中得到它 运行 (我已经在 GitHub 上打开了一个问题) Swift汤可能是一个选项 --> 与 Kanna 一样的问题,在 Xcode 9 中无法得到它 运行(我还打开了一个Github) 我得到的建议是我可以使用 Swift 字符串 class 阅读以下 link: https://developer.apple.com/documentation/swift/string -->我阅读了它,但并没有真正了解如何使用这些方法解决我的问题。也许我遗漏了什么? 有什么建议吗?感谢您的帮助!
建议
如果我没理解错的话,您想从 HTML 字符串中提取所有 URL。您可以通过添加一个循环来检查任何 URL 的字符串:
let detector = try! NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue)
let matches = detector.matches(in: content, options: [], range: NSRange(location: 0, length: content.utf16.count))
for match in matches {
let url = (content as NSString).substring(with: match.range)
if url.contains("ThisIsWhatIDontNeed") {
//do smtg
} else {
self.img_urls.append(url)
}
}
我在添加 SwiftSoup 后使用了以下代码:
guard let linkElements: Elements = try SwiftSoup.parse(myLinkHTMLContent).select("a") else {return}
// Now all elements are printed into an array
for element: Element in linkElements.array(){
myLinksArray.append("\(element)")
}