2016-11-23 5 views
0

enter image description hereJSOUP-は、私はすべてのhrefを引っ張っています(下図のように)私はwebpage.Currently上imgurで上記の画像に見られるように、丸で囲まれたリンクを見つけようとしていますHREF

特定を見つけようそれがページ上の唯一のものであるため "pdf"を含むものを探している文書からループすると、タイトル= "店舗で提供するものをダウンロードする"などのhrefを取得する方法はありません

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); 

これは、title属性がダウンロードと同等のタグをすべて格納します。

あなたが.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 =値]属性名がattrで、値が正確に「値」である の要素を表します。

[attr〜=値]値が空白で区切られた の属性名attrを持つ要素 を表します。そのうちの1つは正確に「値」です。

[attr | =値] 属性名がattrの要素を表します。その値は正確に "value" であるか、 " - " (U + 002D)の直後に "value"で始まることができます。言語サブコードの一致に使用できます。

[attr^= value] 属性名がattrで、最初の の値の前に「値」が付いている要素を表します。 [attr $ = value] の属性名を持ち、最後の値に "value"という接尾辞が付いた要素を表します。

[attr * = value]属性名がattrで、 の要素を表します。この値には、文字列「値」の出現が少なくとも1つ含まれます( 部分文字列)。

関連する問題