2013-02-07 41 views
0

我想要使用html解析jsoup獲取所有圖像。 我使用下面的代碼;如何使用jsoup html解析獲取圖像

Elements images = doc.select("img[src~=(?i)\\.(jpe?g)]"); 
     for (Element image : images) { 

      //System.out.println("\nsrc : " + image.attr("src")); 
      arrImageItem.add(image.attr("src")); 

     } 

我分析這個方法的所有圖像,但我想解析這個URL

http://tvrehberi.hurriyet.com.tr/images/742/403742.jpg

我要分析此URL

http://tvrehberi.hurriyet.com.tr/images的beginnig .. .. .jpg

如何獲得這樣的解析?

+0

我不太明白你的問題是什麼。也許,你只能得到像'some/where/image.jpg'這樣的相對URL,而不是絕對URL? – MCL

+0

我知道這是一個老問題,但你解決了嗎?你可以幫我嗎? –

+0

是的。你可以在下面看到答案。這是正確的答案 – SukruK

回答

0

這可能會給你你所要求的,雖然你的問題有點不清楚,所以我不能確定。

public static void main(String args[]){ 

    Document doc = null; 
    String url = "http://tvrehberi.hurriyet.com.tr"; 
    try { 
     doc = Jsoup.connect(url).get(); 
    } catch (IOException e1) { 
     e1.printStackTrace(); 
    } 

    for (Element e : doc.select("img[src~=(?i)\\.(jpe?g)]")) { 
     if(e.attr("src").startsWith("http://tvrehberi.hurriyet.com.tr/images")){ 
      System.out.println(e.attr("src")); 
     } 
    } 
} 

所以,這可能不是一個很「乾淨」的解決方案,但if語句將確保只打印出的圖像的URL從/圖像/服務器上-directory。

+0

我想要一個解析類的這個網址http://tvrehberi.hurriyet.com.tr/images/742/403742.jpg我想寫的URL http://tvrehberi.hurriyet.com.tr/images的beginnig部分/其他部分/ 742/403742總是變化。我怎樣才能做到這一點 ? – SukruK

+0

非常感謝。有用。 – SukruK

0

如果我理解正確,您希望檢索到某個點的URL路徑並切斷其餘部分。你每次都必須這樣做嗎? 如果您僅使用示例中的一個站點的URL,則可以將"http://tvrehberi.hurriyet.com.tr/images"存儲爲常數,因爲它永遠不會更改。另一方面,如果您從多個不同的網站獲取網址,則可以按照here所述解析您的網址。
無論如何,如果您分享瞭解析URL的目的,我們當然可以爲您提供更多幫助。