我正在尝试弄清楚如何将无用的信息与jsoup
的链接分开。
我应该在这里解析一堆代码:
view-source:https://vk.com/search?c%5Bq%5D=%D0%BA%D0%BE%D1%82&c%5Bsection%5D=communities
public class TestSoup {
public static void main (String[] args) throws Exception {
Document doc = Jsoup.connect("https://vk.com/smcat").get();
Elements links;
//links = doc.select("div > a > img ");
links = doc.select("[data-src_big]");
System.out.println(links);
}
}
我的输出现在:
<img src="https://pp.vk.me/c636126/v636126727/35e1b/ludjlj7T4i8.jpg" class="ph_img" data-id="-23530818_436648332" data-src_big="https://pp.vk.me/c636126/v636126727/35e1c/a1IyGrtjzUQ.jpg|600|448">
有人可以解释我如何从输出中提取第二个链接吗?非常感谢。
答案 0 :(得分:2)
data-src_big
是属性,每个元素都有自己的值。
要迭代链接元素,您可以使用
for (Element el : links){
..
}
要从元素获取指定属性的值,您可以使用
el.attr("attrribute_name")
如果属性的值是写为相对路径的URL地址,例如./foo/bar.jpg
,但您希望将其作为http://server.com/foo/bar.jpg
之类的绝对路径,则可以使用
el.absUrl("attribute_name")
答案 1 :(得分:1)
您只需要使用src
方法从data-src_big
找到的链接中同时获取div > a > img
和attr(name)
:
for (Element element : doc.select("div > a > img")) {
String src = element.attr("src");
String big = element.attr("data-src_big");
}
答案 2 :(得分:1)
你可以在Jsoup cookbook中找到它。简而言之,您使用Element的attr
方法
links = doc.select("[data-src_big]");
String linkStr = links.attr("data-src_big");
请注意links
属于Elements类型,attr()
只获取第一个匹配属性。