簡體   English   中英

入門 <p> Jsoup中的div內部的值不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM