[英]Getting <p> value from inside a div in Jsoup Not Working
我目前正在嘗試從homedepot網站訪問價格值。
網址: http : //www.homedepot.ca/product/dewalt-heavy-duty-3-8-vsr-pistol-grip-drill-with-keyless-chuck/907316
帶有價格的HTML如下所示:
<div style="display: block;" id="regionalized-price"><p class="offer-price">$69.98</p></div>
我做了一些閱讀,我認為以下代碼應該可以工作:
doc = Jsoup.connect("http://www.homedepot.ca/product/dewalt-heavy-duty-3-8-vsr-pistol-grip-drill-with-keyless-chuck/907316").get();
Element content = doc.getElementById("regionalized-price");
Elements p= content.getElementsByTag("p");
System.out.println(p.text());
我也嘗試過這樣做,看是否可以得到一個價值:
Elements content2 = doc.getElementsByClass("offer-price");
System.out.println(content2.text());
不知道我是在做錯什么,還是家得寶有什么東西阻止我的刮擦工作。
任何建議或指導表示贊賞。
您可以通過CSS選擇器獲取價格:
Element price = doc.select("div#regionalized-price > p.offer-price").first();
System.out.println(price.text());
div#regionalized-price > p.offer-price
意思是:給我一個帶有offer-price
類的p
標簽,該標簽正好在div
元素中且id="regionalized-price"
。
但是,實際的問題是,價格是通過XHR
請求異步加載到http://www.homedepot.ca/async-fetch-regional-price?storeId=9999&pnList=907316並返回XML
:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<mdata:Response xmlns:mdata="http://www.endeca.com/MDEX/data/IR600">
<mdata:UntypedResult>
<product-price partnumber="907316" reg-price="69.98"
promo-price="69.98" price-msg=""/>
</mdata:UntypedResult>
</mdata:Response>
</soap:Body>
</soap:Envelope>
您將需要模擬這個額外的請求,並從product-price
元素獲取product-price
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.