这是网站的html代码:
<div class="list_item">
<a href="/p/fifa-19-ps4" title="Fifa 19... on PS4">
<img src="/uploads/products/42376/42376_xsm.jpg?v=MjAxOS0xMS0yNCAxNToxMjowMw==" alt="Fifa 19... on PS4" title="Fifa 19... on PS4" border="0">
<div class="product_name">Fifa 19...</div>
<span>£9.99</span>
</a>
<a href="/p/fifa-19-ps4" class="button in_stock" title="Fifa 19 on PS4">View Product</a>
</div>
我使用JSoup的代码:
Document doc = Jsoup.connect("https://www.simplygames.com/search?keywords=" + itemName).get();
//Get all products on the page
Elements products = doc.select("list_item");
//work through the products using for loop
for(int i = 0; i<products.size(); ++i){
//get the product description
Elements description = products.get(i).select("product_name");
//get the products price
Elements price = products.get(i).select("");
//Ouput web scraped data
System.out.println("DESCRIPTION: " + description.text() + "; PRICE: " + price.text());
}
我在从没有像div这样的类的span元素中抓取价格时遇到问题。我该怎么办?
答案 0 :(得分:0)
您可以执行与选择类相似的操作。在使用.select()创建的Elements对象上使用.get可以为您提供具有该名称的所有Element的列表。
例如,
Elements description = products.get(i).select("product_name");
此行为您提供页面上所有具有类名“ product_name”的Element
要执行的操作是在“ product_name”组中的每个元素上运行另一个选择。
for (Element e : description) {
String desc = e.ownText();
String price = e.selectFirst("span").text();
}