我在大學里有一個項目,我需要構建一個軟件來根據(jù)用戶應輸入的 URL 跟蹤商品價格(目前僅來自 Banggood.com)。我剛剛開始學習如何從網(wǎng)站上抓取信息,所以我設法做到了這一點,但我只是停留在開始階段。我設法抓取了商品名稱,但沒有成功地使用商品價格。我上傳我當前的代碼。我無法從 Jsoup 網(wǎng)站或 Google 獲取正確的信息import java.io.IOException;import java.util.Scanner;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.select.Elements;public class ProjectLearning { public static void main(String args[]) { Scanner scan = new Scanner(System.in); print("Please enter your item URL: "); String userUrl = scan.next(); print("Give me a sec.."); Document document; try { //Get Document object after parsing the html from given url. document = Jsoup.connect(userUrl).get(); String title = document.title(); //Get title print("Item name: " + title); //Print title. //Get price Elements price = document.select("div#item_now_price"); for (int i=0; i < price.size(); i++) { print(price.get(i).text()); } } catch (IOException e) { e.printStackTrace(); } print("There you go"); } public static void print(String string) { System.out.println(string); }}輸出:Please enter your item URL: https://www.banggood.com/3018-3-Axis-Mini-DIY-CNC-Router-Standard-Spindle-Motor-Wood-Engraving-Machine-Milling-Engraver-p-1274569.html?rmmds=flashdeals&cur_warehouse=CNGive me a sec..Item name: 3018 3 axis mini diy cnc router standard spindle motor wood engraving machine milling engraver Sale - Banggood.com
1 回答

慕后森
TA貢獻1802條經(jīng)驗 獲得超5個贊
這是因為您獲取的是id?item_now_price
而不是class 的元素。
查看您輸入的 URL,帶有價格的元素如下所示:
<div?class="item_now_price"?oriattrmin="0"?oriattrmax="0"?noworiprice="149.9"?oriprice="149.9"?oriprice3="146.7"?oriprice10="145.16"?oriprice30="143.64"?oriprice100="142.11">US$149.90</div>
正確的選擇器應該是Elements price = document.select("div.item_now_price");
添加回答
舉報
0/150
提交
取消