JSOUP-试图找到一个特定的href

时间:2016-11-23 22:10:27

标签: java jsoup

enter image description here

我正在尝试在网页上的imgur中找到上图中所示的带圆圈的链接。目前(如下所示)我只是从文档中拉出所有href并循环查找包含&的那个#34; 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");
    }
}

2 个答案:

答案 0 :(得分:2)

您可以指定与属性及其值匹配的选择器。

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\"] 

答案 1 :(得分: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和的元素   其值恰好是"值"。

     

[attr~ = value]表示一个元素   属性名称为attr,其值为以空格分隔   单词列表,其中一个是" value"。

     

[ATTR | =值]   表示属性名称为attr的元素。它的价值可以   确切的“价值”或者可以以“值”开头,紧接着是“ - ”   (U + 002D)。它可以用于语言子码匹配。

     

[ATTR ^ =值]   表示属性名称为attr且第一个属性的元素   值的前缀为"值"。   [attr $ = value]表示带有的元素   属性名称为attr,其最后一个值后缀为" value"。

     

[attr * = value]表示属性名称为attr和的元素   其值至少包含一次字符串" value"如   串。