Я очищаю веб-сайт с HTML-таблицами. Кто-нибудь знает хороший способ разобрать HTML-код в UITableView Swift с текстом между <br>
, являющимся ячейкой, и днем (т. Е. «Вторник 5 ноября») в качестве заголовка раздела?
Хотелось бы, чтобы был API для этих данных. Что если на одной странице было несколько таких таблиц (например, «Вторник 5 ноября», «Среда 6 ноября», «Четверг 7 ноября»)? Есть ли способ обобщить это? Если бы вы могли указать мне правильное направление с библиотекой, это было бы здорово. Я работал с JQuery в прошлом, но пока не очень хорош. Есть ли что-то вроде Jquery for Swift?
Вот код, который у меня пока есть:
import Foundation
let baseUrl = "<url>"
let url = URL(string: baseUrl)!
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
guard let data = data else {
print("data was nil")
return
}
guard let htmlString = String(data: data, encoding: .utf8) else {
print("couldn't cast data into String")
return
}
print(htmlString)
let leftSideString = """
<h3><strong>Tuesday November 5</strong></h3>
"""
let rightSideString = """
<h3><strong>Wednesday November 6</strong></h3>
"""
guard let leftSideRange = htmlString.range(of: leftSideString)
else {
print("couldn't find left range")
return
}
guard
let rightSideRange = htmlString.range(of: rightSideString)
else {
print("couldn't find right range")
return
}
let rangeOfTheData = leftSideRange.lowerBound..<rightSideRange.lowerBound
let valueWeWantToGrab = htmlString[rangeOfTheData]
print(valueWeWantToGrab) // prints the follower count: 19093
}
task.resume()
Пример того, что возвращается:
<h3><strong>Tuesday November 5</strong></h3>
<table border="1" cellpadding="1" cellspacing="1"><tbody><tr><td>
<p><strong>Breakfast</strong></p>
<p><strong>Text0<br />
Text1<br />
Text2<br />
Text3<br />
Text text Text etc<br />
blah blah<br />
blah blah <br />
blah blah <br />
blah blah<br />
blah blah<br />
blah blah<br />
blah blah<br />
blah blah</strong></p>
</td>
</tr><tr><td>
<p><strong>Lunch</strong></p>
<p><strong>blah blah<br />
blah blah∆<br />
blah blah<br />
blah blah<br />
blah blah<br />
blah blah<br />
blah blah<br />
blah blah<br />
blah blah<br />
blah blah<br />
blah blah<br />
blah blah <br />
blah blah</strong></p>
</td>
</tr><tr><td>
<p><strong>Dinner</strong></p>
<p><strong>blah blah<br />
blah blah<br />
blah blah<br />
blah blah<br />
blah blah<br />
blah blah<br />
blah blah<br />
blah blah</strong></p>
</td>
</tr></tbody></table>