gpt4 book ai didi

java - 从 Jsoup 中的 div 内部获取

值不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 06:36:34 25 4
gpt4 key购买 nike

我目前正在尝试从 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 selector获取价格:

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 标签,该标签位于带有 id="regionalized-price"div 元素内。

<小时/>

但是,实际的问题是价格是通过 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 元素获取价格。

关于java - 从 Jsoup 中的 div 内部获取 <p> 值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25298769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com