2014-10-28 78 views
0

我用這作爲一個例子使用Jsoup選擇類和id

http://www.shopping.com/digital-camera/products?CLT=SCH&KW=digital+camera

在臨客上面有使用

Document query_result = Jsoup.connect("http://www.shopping.com") 
       .data("CLT", "digital camera") 
       .post(); 

<span class="numTotalResults"> 
    Results 1 - 40 of 1500&#43; 
</span> 

我得到了它

但是當我

System.out.println(query_result.select(".numTotalResults")); 
System.out.println(query_result.select("#quickLookItem-1")); 
System.out.println(query_result.select("[name=D0]")); 

什麼也沒有發生,

System.out.println(query_result); 
System.out.println(query_result.select("span")); 

清楚地打印出值

的選擇似乎只能用div和span和固定的工作,但我可以」選擇的類或編號

有人可以幫助我嗎?

感謝

編輯:

好像後沒有通過。我不太明白爲什麼它沒有。

回答

0

而不是使用POST請求,試圖得到一個:

Document query_result = Jsoup.connect("http://www.shopping.com/digital-camera/products?CLT=SCH&KW=digital+camera") 
      .get(); 

看看如何做到這一點的搜索工作。它不使用POST方法,它將所有搜索參數保留在查詢字符串中。在這個小小的改變之後,你的第一個選擇的例子將運行良好

+0

感謝它的工作,雖然我有點困惑,當你查詢的東西你不是總是發佈而不是得到? – user87852 2014-10-28 06:28:41

+1

在大多數情況下,使用GET方法時,使用這種形式(搜索表單,篩選表單等)。原因很實用 - 您只需將URL中的所有查詢參數傳遞給一個URL即可。分頁。如果在這種情況下使用POST,則必須在某處存儲所有查詢參數(例如會話)並管理這些參數的生命週期。這就是爲什麼通過GET請求傳遞它們很方便的原因。 POST大多保留用於不想在任何地方發佈所發佈數據的表單,如用戶設置表單,登錄/註冊表單等。 – 2014-10-28 08:10:48