1

在处理从网站抓取/获取数据时,我不是最了解的,所以提前道歉。我已在本地将 HTML 文件加载到我的项目中,以便我可以参考和分解元素:

<div class="price">99</div>
<div class="size">M</div>

我想选择这两个 div 类,名称和价格,并相应地提取 99 和 M 的值,我该怎么做?我看着 SwiftSoups

let elements = try doc.select("[name=transaction_id]") // query
let transaction_id = try elements.get(0) // select first element
let value = try transaction_id.val() // get value

但这给了我一个错误。我可以看到您可以选择<P> tags,哪些是段落,但是如何选择特定的 div 类?

再次道歉,如果这是一个初学者的问题。

谢谢你。

编辑 - 我希望解析的数据:

var pstats = {att1:85,att2:92,att3:91,att4:95,att5:38,att6:65,acceleration:91,agility:91,balance:95,jumping:68,reactions:94,sprintspeed:80,stamina:72,strength:69,aggression:44,positioning:93,tactaware:40,vision:95,ballcontrol:96,crossing:85,curve:93,dribbling:96,finishing:95,fkacc:94,headingacc:70,longpass:91,longshot:94,marking:32,penalties:75,shortpass:91,shotpower:86,slidetackle:24,standingtackle:35,volleys:88,composure:96};

编辑 2 - 我要解析的新数据:

   <div style="display: none;" id="player_stats_json">{"test":0,"ppace":85,"pshooting":92,"ppassing":91,"pdribbling":95,"pdefending":38,"pphysical":65,"acceleration":91,"sprintspeed":80,"agility":91,"balance":95,"reactions":94,"ballcontrol":96,"dribbling":96,"positioning":93,"finishing":95,"shotpower":86,"longshotsaccuracy":94,"volleys":88,"penalties":75,"interceptions":40,"headingaccuracy":70,"marking":32,"standingtackle":35,"slidingtackle":24,"vision":95,"crossing":85,"freekickaccuracy":94,"shortpassing":91,"longpassing":91,"curve":93,"jumping":68,"stamina":72,"strength":69,"aggression":44,"composure":96}</div>
4

1 回答 1

1

如果这些标签具有唯一的类,您可以使用getElementsByClass(_:)函数然后获取第一项,如下所示:

let price = try doc.getElementsByClass("price").first()?.text()
let size = try doc.getElementsByClass("size").first()?.text()
于 2020-10-08T20:12:46.010 回答