我正在尝试在网页上的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");
}
}
答案 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"如 串。