Linux作業系統下的離線瀏覽器介紹(轉)

BSDLite發表於2007-08-17
Linux作業系統下的離線瀏覽器介紹(轉)[@more@]  本文將介紹如何實現一個離線瀏覽器,以下載並瀏覽網上資源。

  映象目錄結構

  離線瀏覽下載到本地的網頁時,需要解決的一個關鍵性問題就是“如何透過某一網頁中的超級連結正確地定位其他網頁”。比較簡便的方法是在使用者指定的本地目錄下建立一個目標網站的完整或部分映象。也就是按照檔案在伺服器端的目錄結構儲存下載的檔案(參見下圖)。這樣一來,如果網頁中的超級連結是以相對路徑形式給出的,那麼瀏覽程式就可以直接透過此相對路徑訪問到本地檔案系統中的網頁;如果網頁中的超級連結是以絕對的URL形式給出的,那麼必須在儲存網頁之前將這些URL轉換為本地絕對路徑。

  在網路中,一個有效的URL應該只有唯一的網路檔案與之對應。因此,只要將網路上由URL所確定的層次關係,轉化為本地檔案系統中由目錄路徑所確定的層次關係,就可以建立網站在本地的完全或部分映象。下面討論建立映象的具體方法。

  映象路徑演算法

  首先,將下載網頁時生成的URL拆分成協議類名(protocol)、IP地址(ipaddr)、目錄名(directory)和檔名(file)。

  KDE環境提供了一個用於解析URL的類KURL,只需要定義一個物件KURL u((const char*)URL),就可以利用該類提供的成員函式將URL拆解為所需的部分。但是,此類未提供對ASP定位語句的支援,所以讀者可以在KURL的基礎上編寫自己的拆解函式,以完善程式功能。

  需要注意的是,在同一網路檔案的URL中,網址部分可能是以域名地址形式給出的,也可能是以IP 地址形式給出的。為了避免將同一檔案映象到不同目錄下,如果網址是域名形式的,應該使用socket函式gethostbyname ()將其轉換為IP地址。

  其次,確定網路檔案在本地的映象路徑。假設使用者指定的本地目錄存放在字元陣列LDir中,則程式碼如下:
QUOTE:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-963517/,如需轉載,請註明出處,否則將追究法律責任。

下一篇: 五筆安裝???(轉)
Linux作業系統下的離線瀏覽器介紹(轉)
請登入後發表評論 登入
全部評論

相關文章