2016-11-23 44 views
0

enter image description hereJSOUP-試圖找到一個特定的A HREF

我試圖找到圓圈鏈接作爲一個webpage.Currently imgur圖像中看到以上(如下圖所示),我只是拉全部的HREFs從文件和循環它尋找包含「pdf」,因爲它是唯一的一個頁面上,有沒有什麼辦法只是拉一個href其中title =「下載優惠存儲」或類似的東西

Document doc = Jsoup.connect("http://www.dunnesstores.com/offer20/food-wine/fcp-category/home").get(); 
Elements links = doc.select("a[href]" +); 

for (Element link : links) { 
    System.out.println(link.attr("href")); 
    if (link.attr("href").contains("pdf")){ 
     pdfLink = link.attr("href"); 
    } 
} 

回答

1

您可以指定一個匹配屬性及其值的選擇器。

String pdfLink = null; 

Document doc = Jsoup.connect("http://www.dunnesstores.com/offer20/food-wine/fcp-category/home").get(); 
Elements links = doc.select("a[title=\"Download offers in store\"]"); 

for (Element link : links) { 
    pdfLink = link.attr("abs:href"); 
} 

System.out.println(pdfLink); 

這選擇標題屬性相等的每個標籤下載商店中的優惠。

如果你想你的.pdf結束的文件中搜索元素可以改變選擇到:

a[href$=".pdf\"] 
+0

非常感謝! – Daniel

2

https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors

doc.select("a[title='Download offers in store']"); 

[ATTR]表示與屬性的元素attr的名稱。

[attr = value]表示屬性名稱爲attr的元素,其值爲「value」的值爲 。

[attr〜= value]表示元素 ,其屬性名稱爲attr,其值爲空白分隔的 單詞列表,其中一個單詞完全是「value」。

[attr | = value] 表示具有屬性名稱attr的元素。它的值可以是 正好「值」或可以以「值」開頭,緊接着是「 - 」 (U + 002D)。它可以用於語言子代碼匹配。

[attr^= value] 表示一個元素,其屬性名稱爲attr,其第一個 值的前綴爲「value」。 [attr $ = value]表示一個元素,其中 屬性名稱爲attr,其最後一個值後綴爲「value」。

[attr * = value]表示一個元素,其屬性名稱爲attr, 其值至少包含一個出現字符串「value」的子字符串爲 。