我有一种使用Swiftsoup
go get the price 解析网站的方法:
@objc func actionButtonTapped(){
let url = "https://www.overkillshop.com/de/c2h4-interstellar-liaison-panelled-zip-up-windbreaker-r001-b012-vanward-black-grey.html"
let url2 = "https://www.asos.com/de/asos-design/asos-design-schwarzer-backpack-mit-ringdetail-und-kroko-muster/prd/14253083?clr=schwarz&colourWayId=16603012&SearchQuery=&cid=4877"
do {
let html: String = getHTMLfromURL(url: url2)
let doc: Document = try SwiftSoup.parse(html)
let priceClasses: Elements = try doc.select("[class~=(?i)price]")
for priceClass: Element in priceClasses.array() {
let priceText : String = try priceClass.text()
print(try priceClass.className())
print("pricetext: \(priceText)")
}
} catch Exception.Error(let type, let message) {
print(message)
} catch {
print("error")
}
}
该方法可以正常工作,url
但url2
即使classNames
它们与regex
. 实际价格是这样的:
<span data-id="current-price" data-bind="text: priceText(), css: {'product-price-discounted' : isDiscountedPrice }, markAndMeasure: 'pdp:price_displayed'" class="current-price">36,99 €</span>
函数的输出是这样的:
产品价格价格文本:
股票价格重试oos
pricetext:股票价格重试
价格文本:
它不是打印class=current-price
的。我的有问题regex
还是为什么找不到class
?
编辑:
我发现 theprice
实际上不在HTML
of 中url2
。只有classes
实际打印出来的才在里面。这是什么原因,我该如何解决?