在上图中,我想从突出显示的行中提取值Rs. 4794
。
这是我尝试过的。
Document document = Jsoup.connect(url).get();
Element price = document.select("#mountRoot > div > div > main > div.pdp-details > div.pdp-description-container > div.pdp-price-info > p.pdp-selling-price > strong").first();
System.out.println(price);
但代码返回null。
非常感谢任何形式的帮助。
答案 0 :(得分:1)
您尝试使用Jsoup解析的网页会动态更新内容。
您获取的是空值,因为网页未完全加载。为了获得价格值,您必须等到页面加载。使用Jsoup无法做到这一点。
您拥有的一个选项是使用Selenium。使用selenium可以等待页面加载或等待元素可见。然后你就可以得到价格值。
你可以找到here来使用selenium来显示元素。关于这个主题有很多教程。
答案 1 :(得分:0)
依靠绝对布局找到一个div很糟糕。尝试使用更通用的方法:
Element price = document.select("#mountRoot p.pdp-selling-price > strong").first();
要输出标记内容,请使用.text()
方法:
System.out.println(price.text());