是否有一种方法可以解析具有特定属性的标记的HTML
现在,我使用以下代码获取页面的内容(使用SwiftSoup):
// Checking if MyLink is working
guard let myURL = URL(string: MyLink) else { // myURL needed only temporarly
print("Error: \(MyLink) doesn't seem to be a valid URL")
return
}
// Getting all content of website for a specific link
do {
MyLinkContent = try String(contentsOf: myURL, encoding: .ascii)
} catch let error {
print("Error: \(error)")
}获得内容后,我可以将所有链接保存在数组中,例如使用以下代码:
// Searching for all links in the content of the URL and creating elements
guard let linkElements: Elements = try? SwiftSoup.parse(MyLinkContent).select("a") else {return}
// Now all elements are printed into an array
for element: Element in linkElements.array(){
MyLinkArray.append("\(element)")
}这将导致一个包含网站所有链接的数组。
然而,我的问题是,比如说主页有很多标签,格式如下:
- Things I don't need especially a lot of <tr tags but with other attributes I don't need
- <tr id="row_">"TheContentINeed"</tr>
- <tr id="row_">"TheContentINeed"</tr>
- <tr id="row_">"TheContentINeed"</tr>
- <tr id="row_">"TheContentINeed"</tr>
- <tr id="row_">"TheContentINeed"</tr>
- More Things I don't need specially a lot of <tr tags but with other attributes I don't need我希望将所有内容保存在数组中,但只保存属性为"id“的标记。
有什么想法吗?我更愿意再次使用SwiftSoup (如果可能的话)。谢谢!
发布于 2018-03-13 09:50:25
组合你的CSS选择器。请参阅更多的示例项目。
// Searching for all links in the content of the URL and creating elements
guard let linkElements: Elements = try? SwiftSoup.parse(MyLinkContent).select("a tr[id="row"]") else {return}
// Now all elements are printed into an array
for element: Element in linkElements.array(){
MyLinkArray.append("\(element)")
}https://stackoverflow.com/questions/49200700
复制相似问题