好的,我有一个网站,我想抓取特定的链接。我已经使用URLSession将所有网站内容放入一个字符串中。现在我必须将所有链接都放入一个具有以下结构的数组中:
“<a href =”/ thisIsAlwaysTheSame / ThisIsAUniqueNumber / ThisIsWhatIDontNeed ......“
所以我得到一个数组:[href =“/ thisIsAlwaysTheSame / UniqueNumberA /,href =”/ thisIsAlwaysTheSame / UniqueNumberB,href =“/ thisIsAlwaysTheSame / UniqueNumberC等]”网站上有更多链接,但我只需要那些有这种格式的人。如果我只将UniqueNumbers放入数组中,我也会很高兴。
我已经在reddit上问了这个问题,但没有得到足够的答案:https://www.reddit.com/r/swift/comments/7256vi/scraping_an_html_with_swift_4_in_xcode_9/
以下是我已经从我的研究中得知的以及reddit的答案:
有什么建议?谢谢你的帮助!
我在添加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)")
}
如果我理解正确,您希望从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)
}
}