现在,在我的代码中,我从一个显示球员名单的棒球网站检索了 HTML。HTML 中有多个表格,我只想要下面发布的表格中的数据。我不确定如何仅从 HTML 中解析该表。
/*this code retrieves the HTML and is what I've tried to do */
if let url = URL(string: "https://www.examplewebsite.com") {
do {
let contents = try String(contentsOf: url)
statsHTML = contents //statsHTML is a string
let doc: Document = try SwiftSoup.parse(statsHTML)
let table : [Element] = try doc.getElementsByTag("div").array() //attempt to parse by div name
for div in table {
let statsTable = try div.getElementById("baseball-hitting-stats-table") //name of table
print(statsTable) //prints all nil values
}
/*This is a section of the table in HTML code that I want to
parse*/
<div name="baseball-hitting-stats-table" class="team-stats-table">
<div class="collclubsports-component tab-wrapper"> <h3
class="stats-title">Hitting Stats</h3><div style="overflow:auto;">
<table class="collclubsports-component table-reponsive stats-
table">
</thead><tbody class="collclubsports-component active" name="page-
1"><tr><td><a href="/league/player/?player=36c85410-e987-4a73-
8b36-e8c0d7ff1eed&season=46d3ea9a-a080-4273-befb-
58b30c2adb01">John, Doe</a></td><td>13</td><td>2</td><td>7</td>
<td>0</td><td>0</td><td>0</td><td>5</td><td>2</td><td>2</td>
<td>2</td><td>0</td><td>0.538</td><td>0.600</td><td>0.538</td>
<td>1.138</td><td>0</td><td>0</td><td>0</td><td>0</td><td>7</td>
<td>0</td><td>15</td></tr> </table>
我成功检索了所有 div 元素并使用 getElementsByID 试图检索我想要的表,但它打印所有 nil。谢谢你的帮助。