JSoup 提取具有 rel 属性的标签的 href

JSoup extract href of a tag that has rel attribute

我想提取具有 rel 标签的标签的 href 属性。 这是我处理的 div 部分。

 <div class="post-thumbnail"> 
 <a rel="bookmark" title="تفضل عرض البيتزا الثانية هدية بـ 54 ر.س من بيتزا هت" href="http://www.sfqat.com/deals-11894-%d8%aa%d9%81%d8%b6%d9%84-%d8%b9%d8%b1%d8%b6-%d8%a7%d9%84%d8%a8%d9%8a%d8%aa%d8%b2%d8%a7-%d8%a7%d9%84%d8%ab%d8%a7%d9%86%d9%8a%d8%a9-%d9%87%d8%af%d9%8a%d8%a9-%d8%a8%d9%80-54-%d8%b1-%d8%b3-%d9%85%d9%86/"> <img src="http://www.sfqat.com/wp-content/themes/sfqat/scripts/timthumb.php?src=http://www.sfqat.com/wp-content/uploads/2014/11/B3OItt8CAAAepVv.jpg&amp;h=76&amp;w=76&amp;zc=1&amp;a=c" class="wp-post-image almtwer5" alt="تفضل عرض البيتزا الثانية هدية بـ 54 ر.س من بيتزا هت" title="تفضل عرض البيتزا الثانية هدية بـ 54 ر.س من بيتزا هت" width="76" height="76"><span class="overlay-icon"></span> </a> 
</div>



 <a rel="bookmark" title="عروض بيتزا هت غداكم نصه علينا" href="http://www.sfqat.com/deals-12153-%d8%b9%d8%b1%d9%88%d8%b6-%d8%a8%d9%8a%d8%aa%d8%b2%d8%a7-%d9%87%d8%aa-%d8%ba%d8%af%d8%a7%d9%83%d9%85-%d9%86%d8%b5%d9%87-%d8%b9%d9%84%d9%8a%d9%86%d8%a7/"> <img src="http://www.sfqat.com/wp-content/themes/sfqat/scripts/timthumb.php?src=http://www.sfqat.com/wp-content/uploads/2015/01/B6p8vUSCMAAvWyP.jpg&amp;h=76&amp;w=76&amp;zc=1&amp;a=c" class="wp-post-image almtwer5" alt="عروض بيتزا هت غداكم نصه علينا" title="عروض بيتزا هت غداكم نصه علينا" width="76" height="76"><span class="overlay-icon"></span> </a>
<a rel="bookmark" title="الدجاج المشوي خفيف ولذيذ مره لدى هرفي" href="http://www.sfqat.com/deals-11936-%d8%a7%d9%84%d8%af%d8%ac%d8%a7%d8%ac-%d8%a7%d9%84%d9%85%d8%b4%d9%88%d9%8a-%d8%ae%d9%81%d9%8a%d9%81-%d9%88%d9%84%d8%b0%d9%8a%d8%b0-%d9%85%d8%b1%d9%87-%d9%84%d8%af%d9%89-%d9%87%d8%b1%d9%81%d9%8a/"> <img src="http://www.sfqat.com/wp-content/themes/sfqat/scripts/timthumb.php?src=http://www.sfqat.com/wp-content/uploads/2014/12/LsJKv4.jpg&amp;h=76&amp;w=76&amp;zc=1&amp;a=c" class="wp-post-image almtwer5" alt="الدجاج المشوي خفيف ولذيذ مره لدى هرفي" title="الدجاج المشوي خفيف ولذيذ مره لدى هرفي" width="76" height="76"><span class="overlay-icon"></span> </a>

我尝试使用以下代码,但它没有给我想要的输出:-

Elements itemimg = doc.select("article").select("div.post-thumbnail");

Elements rel = itemimg.select("a[rel~=bookmark]");

//System.out.println(itemimg);  
System.out.println("It 's"+rel);

}

这是输出样本(我只想要 hyperref:/......)。

<a rel="bookmark" title="الكنافة النابلسية خشنة أو ناعمة، من سعد الدين طعمها غير!" href="http://www.sfqat.com/deals-11567-%d8%a7%d9%84%d9%83%d9%86%d8%a7%d9%81%d8%a9-%d8%a7%d9%84%d9%86%d8%a7%d8%a8%d9%84%d8%b3%d9%8a%d8%a9-%d8%ae%d8%b4%d9%86%d8%a9-%d8%a3%d9%88-%d9%86%d8%a7%d8%b9%d9%85%d8%a9%d8%8c-%d9%85%d9%86-%d8%b3%d8%b9/"> <img src="http://www.sfqat.com/wp-content/themes/sfqat/scripts/timthumb.php?src=http://www.sfqat.com/wp-content/uploads/2014/08/10411824_795664147120940_2602495268443605656_n.jpg&amp;h=76&amp;w=76&amp;zc=1&amp;a=c" class="wp-post-image almtwer5" alt="الكنافة النابلسية خشنة أو ناعمة، من سعد الدين طعمها غير!" title="الكنافة النابلسية خشنة أو ناعمة، من سعد الدين طعمها غير!" width="76" height="76"><span class="overlay-icon"></span> </a>
<a rel="bookmark" title="عروض ابل بيز السعودية ابل بيز سيزلرز لذة تسمعها من بعيد" href="http://www.sfqat.com/deals-11564-%d8%b9%d8%b1%d9%88%d8%b6-%d8%a7%d8%a8%d9%84-%d8%a8%d9%8a%d8%b2-%d8%a7%d9%84%d8%b3%d8%b9%d9%88%d8%af%d9%8a%d8%a9-%d8%a7%d8%a8%d9%84-%d8%a8%d9%8a%d8%b2-%d8%b3%d9%8a%d8%b2%d9%84%d8%b1%d8%b2-%d9%84%d8%b0/"> <img src="http://www.sfqat.com/wp-content/themes/sfqat/scripts/timthumb.php?src=http://www.sfqat.com/wp-content/uploads/2014/08/10365790_826172157416452_904402968051705800_n.jpg&amp;h=76&amp;w=76&amp;zc=1&amp;a=c" class="wp-post-image almtwer5" alt="عروض ابل بيز السعودية ابل بيز سيزلرز لذة تسمعها من بعيد" title="عروض ابل بيز السعودية ابل بيز سيزلرز لذة تسمعها من بعيد" width="76" height="76"><span class="overlay-icon"></span> </a>
<a rel="bookmark" title="غداءك مع هرفي اوفر واطيب" href="http://www.sfqat.com/deals-11497-%d8%ba%d8%af%d8%a7%d8%a1%d9%83-%d9%85%d8%b9-%d9%87%d8%b1%d9%81%d9%8a-%d8%a7%d9%88%d9%81%d8%b1-%d9%88%d8%a7%d8%b7%d9%8a%d8%a8/"> <img src="http://www.sfqat.com/wp-content/themes/sfqat/scripts/timthumb.php?src=http://www.sfqat.com/wp-content/uploads/2014/08/RvZtRr.png&amp;h=76&amp;w=76&amp;zc=1&amp;a=c" class="wp-post-image almtwer5" alt="غداءك مع هرفي اوفر واطيب" title="غداءك مع هرفي اوفر واطيب" width="76" height="76"><span class="overlay-icon"></span> </a>
<a rel="bookmark" title="المدرسة تحلى مع كرواسون جبن سعد الدين" href="http://www.sfqat.com/deals-11441-%d8%a7%d9%84%d9%85%d8%af%d8%b1%d8%b3%d8%a9-%d8%aa%d8%ad%d9%84%d9%89-%d9%85%d8%b9-%d9%83%d8%b1%d9%88%d8%a7%d8%b3%d9%88%d9%86-%d8%ac%d8%a8%d9%86-%d8%b3%d8%b9%d8%af-%d8%a7%d9%84%d8%af%d9%8a%d9%86/"> <img src="http://www.sfqat.com/wp-content/themes/sfqat/scripts/timthumb.php?src=http://www.sfqat.com/wp-content/uploads/2014/08/10632834_795661680454520_4531692599466389199_n.jpg&amp;h=76&amp;w=76&amp;zc=1&amp;a=c" class="wp-post-image almtwer5" alt="المدرسة تحلى مع كرواسون جبن سعد الدين" title="المدرسة تحلى مع كرواسون جبن سعد الدين" width="76" height="76"><span class="overlay-icon"></span> </a>
<a rel="bookmark" title="جديد شاورمر توستا لحم وتوستا حلومي طعم لذيذ وعلى مزاجك من شاورمر" href="http://www.sfqat.com/deals-11437-%d8%ac%d8%af%d9%8a%d8%af-%d8%b4%d8%a7%d9%88%d8%b1%d9%85%d8%b1-%d8%aa%d9%88%d8%b3%d8%aa%d8%a7-%d9%84%d8%ad%d9%85-%d9%88%d8%aa%d9%88%d8%b3%d8%aa%d8%a7-%d8%ad%d9%84%d9%88%d9%85%d9%8a-%d8%b7%d8%b9%d9%85/"> <img src="http://www.sfqat.com/wp-content/themes/sfqat/scripts/timthumb.php?src=http://www.sfqat.com/wp-content/uploads/2014/08/10620744_832685153409996_4918377583411381740_n.jpg&amp;h=76&amp;w=76&amp;zc=1&amp;a=c" class="wp-post-image almtwer5" alt="جديد شاورمر توستا لحم وتوستا حلومي طعم لذيذ وعلى مزاجك من شاورمر" title="جديد شاورمر توستا لحم وتوستا حلومي طعم لذيذ وعلى مزاجك من شاورمر" width="76" height="76"><span class="overlay-icon"></span> </a>

如果我使用下面的代码,我将只得到第一个超链接,我想要所有的超链接。
http://www.sfqat.com/deals-12153-%d8%b9%d8%b1%d9%88%d8%b6-%d8%a8%d9%8a%d8%aa%d8%b2%d8%a7-%d9%87%d8%aa-%d8%ba%d8%af%d8%a7%d9%83%d9%85-%d9%86%d8%b5%d9%87-%d8%b9%d9%84%d9%8a%d9%86%d8%a7/

Document doc = Jsoup.connect("http://www.sfqat.com/deals-9580-%d8%a7%d9%84%d8%b7%d8%b9%d9%85-%d8%a7%d9%84%d9%84%d8%a8%d9%86%d8%a7%d9%86%d9%8a-%d8%a7%d9%84%d8%a3%d8%b5%d9%8a%d9%84-%d9%8a%d8%b5%d9%84-%d8%a5%d9%84%d9%8a%d9%83-%d8%a3%d9%8a%d9%86%d9%85%d8%a7-%d9%83/").get();   

Elements art =doc.select("article").select("div.lop").select("span.lop1 a[href]");
Elements itemimg = doc.select("article").select("div.post-thumbnail");

Elements rel = itemimg.select("a[rel~=bookmark]");
System.out.println("It 's"+rel.attr("href"));

使用它:

Elements rel = itemimg.select("a[rel~=bookmark]").attr("href");

试试这个:

Document doc = Jsoup.connect("http://www.sfqat.com/deals-9580-%d8%a7%d9%84%d8%b7%d8%b9%d9%85-%d8%a7%d9%84%d9%84%d8%a8%d9%86%d8%a7%d9%86%d9%8a-%d8%a7%d9%84%d8%a3%d8%b5%d9%8a%d9%84-%d9%8a%d8%b5%d9%84-%d8%a5%d9%84%d9%8a%d9%83-%d8%a3%d9%8a%d9%86%d9%85%d8%a7-%d9%83/").get();   

// Extract links
Elements links = doc.select("article div.post-thumbnail a[rel=bookmark]");
for(Element link : links) {
   System.out.println(link.attr("abs:href"));
}

// Extract images
Elements imgs = doc.select("article div.post-thumbnail a[rel=bookmark] img"); 
for(Element img : imgs) {
   System.out.println(img.attr("abs:src"));
}    


//Extracting Hrefs and images adjacently.
Elements links = doc.select("article div.post-thumbnail  a[rel=bookmark]");
Elements links2 = doc.select("article div.post-thumbnail img");
for(Element link : links) {
   for(Element link3 :links2) {
      System.out.println(link+"\t"+link3.attr("abs:src")+"\t"+link.attr("abs:href"));
   }
}

不是多次调用 select 方法,而是仅使用一个选择器表达式调用该方法一次:article div.post-thumbnail a[rel=bookmark].

您可以在此处测试您的选择器表达式:http://try.jsoup.org
您甚至可以直接获取任何 url.

有关选择器表达式的详细信息,请参见此处:http://jsoup.org/apidocs/org/jsoup/select/Selector.html