2016-11-06 72 views
0

我在想如何區分無用信息與鏈接jsoup。 一串代碼,我應該在這裏解析:用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

你需要提取這個'data-src_big =「https://pp.vk.me/c636126/v636126727/35e1c/a1IyGrtjzUQ.jpg|600|448」' – Joe

回答

2

data-src_big屬性和每個元素都可以有它自己的價值。

要通過鏈接元素迭代,你可以使用

for (Element el : links){ 
    ..  
} 

要獲得從元素指定的屬性值可以使用

el.attr("attrribute_name") 

如果屬性的值是寫像./foo/bar.jpg相對路徑URL地址但你想得到它作爲像http://server.com/foo/bar.jpg你可以使用的絕對路徑

el.absUrl("attribute_name") 
+0

你擊敗了我:) +1 – luksch

+0

非常感謝,先生。 –

1

你只需要獲得使用attr(name)方法,通過div > a > img發現的鏈接都srcdata-src_big

for (Element element : doc.select("div > a > img")) { 
    String src = element.attr("src"); 
    String big = element.attr("data-src_big"); 
} 
+0

你打我吧:) +1 – luksch

1

你可以在Jsoup cookbook找到它。總之,您使用attr方法元素

links = doc.select("[data-src_big]"); 
String linkStr = links.attr("data-src_big"); 

注意links的類型元素,並attr()剛剛獲得第一個匹配的屬性。