2011-02-03 67 views
6

我想從一個網頁的HTML源代碼中所有圖片的URL列表(無論abosulte和相對URL)。我用Jsoup解析HTML,但沒有給出所有圖像。例如,當我解析google.com HTML源其示出零images..In google.com HTML源圖像鏈接在形式上..提取任何圖片,HTML使用Java

"background:url(/intl/en_com/images/srpr/logo1w.png)

而在rediff.com圖像鏈接在形式..

videoArr[j]=new Array("http://ishare.rediff.com/video/entertainment/bappi-da-the-first-indian-in-grammy-jury/2684982","http://datastore.rediff.com/h86-w116/thumb/5E5669666658606D6A6B6272/v3np2zgbla4vdccf.D.0.bappi.jpg","Bappi Da - the first Indian In Grammy jury","http://mypage.rediff.com/profile/getprofile/LehrenTV/12669275","LehrenTV","(2:33)"); j = 1 videoArr[j]=new Array("http://ishare.rediff.com/video/entertainment/bebo-shahid-jab-they-met-again-/2681664","http://datastore.rediff.com/h86-w116/thumb/5E5669666658606D6A6B6272/ra8p9eeig8zy5qvd.D.0.They-Met-Again.jpg","Bebo-Shahid : Jab they met again!","http://mypage.rediff.com/profile/getprofile/LehrenTV/12669275","LehrenTV","(2:17)");

所有圖片都是不與「IMG」 tags..I也想提取如上面的HTML源不屬於即使在「IMG」的標籤圖像。

我怎樣才能做到這一點..?請幫我在這.. 感謝

+0

爲什麼Java的?你有沒有想過開發一個瀏覽器插件? – fglez 2011-02-04 16:11:33

回答

1

這將是一個有點困難,我想。你基本上需要一個庫,它將下載一個網頁,構建頁面的DOM並執行任何可能改變DOM的javascript。完成所有這些之後,您必須從DOM中提取所有可能的圖像。另一種可能的選擇是攔截庫的所有調用來下載資源,檢查URL以及URL是否爲URL的圖像記錄。

我的建議是用打的HtmlUnit開始(http://htmlunit.sourceforge.net/gettingStarted.html。)它確實建立DOM的一個好工作。我不確定它具有什麼類型的鉤子來攔截下載資源的方法。當然,如果它不能爲您提供鉤子,你可以隨時使用的AspectJ或者簡單修改化的HtmlUnit源代碼。祝你好運,這聽起來像是一個相當有趣的問題。當你解決問題時,你應該發佈你的解決方案。

0

如果你只是想在網頁中提到每一個形象,你不能只掃描HTML和任何鏈接的JavaScript或用一個簡單的正則表達式CSS?可能性有多大你的HTML/JS/CSS這不是一個形象得到[-:_./%a-zA-Z0-9]*(.jpg|.png|.gif)?我猜不太可能。無論如何,你應該允許斷開鏈接。

KARTHIK的建議是比較正確的,但我想給你剛剛獲得絕對一切,並過濾掉不感興趣的圖像是更重要的。

相關問題