2013-08-06 21 views
3

我正在尋找給定網站上的所有圖像。Jsoup從css獲取背景圖像路徑

爲此我需要找到是CSS例如內的那些:

.gk-crop { 
    background-image: url("../images/style1/g_rss-2.png"); 
} 

現在的問題是如何才能得到這些網址JSoup的?

到目前爲止,香港專業教育學院嘗試了以下內容:

Document doc = Jsoup.connect(url).get(); 
    Elements imagePath = doc.select("[src]"); 
    imagePath.select("*[style*='background-image']"); 

但至今沒有運氣。

有誰知道我該如何實現它?

回答

3

Jsoup不解析css文件。

看看this知道什麼Jsoup負責。

您需要一個單獨的css解析器來從css文件中提取url。看看this

-2

如果你想選擇網站上所有圖像的URL,你可以選擇所有圖像標籤,然後獲取絕對URL。

例子:

String html = "http://www.bbc.co.uk"; 
Document doc = Jsoup.connect(html).get(); 

Elements titles = doc.select("img"); 

for (Element e : titles) { 
    System.out.println(e.absUrl("src")); 
} 

這將抓住所有的<img>元素和提交,如

http://sa.bbc.co.uk/bbc/bbc/s?name=SET-COUNTER&pal_route=index&ml_name=barlesque&app_type=web&language=en-GB&ml_version=0.16.1&pal_webapp=wwhp&blq_s=3.5&blq_r=3.5&blq_v=default-worldwide 
http://static.bbci.co.uk/frameworks/barlesque/2.50.2/desktop/3.5/img/blq-blocks_grey_alpha.png 
http://static.bbci.co.uk/frameworks/barlesque/2.50.2/desktop/3.5/img/blq-search_grey_alpha.png 
http://news.bbcimg.co.uk/media/images/69139000/jpg/_69139104_69139103.jpg 
http://news.bbcimg.co.uk/media/images/69134000/jpg/_69134575_waynerooney1.jpg 

如果你只想要.JPG文件,告訴選擇通過包括

Elements titles = doc.select("img[src$=.jpg]"); 

這導致只解析.JPG-URL。

+0

Daniel B通過'css'請求的圖像將不會成爲'html'源代碼中''標記的一部分。 – Niranjan

0

就像Niranjan提到的,Jsoup不是用於解析CSS,而是用於解析XML。如果你真的需要從CSS中提取一些圖片,你需要爲此目的使用一些第三方庫,或者編寫簡單的正則表達式來從CSS文件抓取URL--它仍然是純文本不是它?這不是靈活的解決你的問題,但它會是最快的一個:)