2016-11-23 2 views
0

enter image description hereJSOUP- Пытаясь найти конкретный A HREF

Я пытаюсь найти кружком ссылку, как показано на рисунке выше, в Imgur на webpage.Currently (как показано ниже), я просто потянув все A 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); 

Это выбирает каждый тег, где атрибут 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 и , значение которого равно «value».

[attr ~ = значение] Представляет элемент с именем атрибута attr, значение которого является разделенным пробелом списком слов, одним из которых является «значение».

[attr | = value] Представляет элемент с именем атрибута attr. Его значение может быть точно «значение» или может начинаться со «значения», а затем «-» (U + 002D). Его можно использовать для совпадений подкодов языка.

[attr^= value] Представляет элемент с именем атрибута attr и чье первое значение имеет префикс «значение». [attr $ = value] Представляет элемент с именем атрибута attr и последним значением которого является «значение».

[attr * = значение] Представляет элемент с именем атрибута attr и , значение которого содержит по крайней мере одно вхождение строки «значение» в качестве подстроки .

Смежные вопросы