2013-08-21 65 views
1

我想將動態生成的網頁的內容保存在文本文件中,以便在Linux下從bash腳本進一步處理。我對源代碼不感興趣;我想要的只是該頁面的輸出在本地保存(對應於Firefox中的Strg + S)。我嘗試了wget,curl ...和所有這些東西 - 但這隻保存了頁面的靜態部分。 有沒有一種簡單的方法可以通過命令行使用firefox或其他瀏覽器將其保存在文件中?用bash腳本在firefox中保存動態生成的網頁

+0

你是什麼意思靜態的動態部分?當你在一個服務器中調用一個PHP文檔時,它會被評估並返回HTML(你可以看到它是「靜態的」,但有些部分可以動態生成)。使用命令'curl -o output.txt www.google.com'(或任何其他網站)將把服務器返回的HTML保存到'output.txt'文件中。 –

+0

謝謝,但是:使用Firefox我可以保存一個網頁與「Strg + S進入」。我怎樣才能在腳本中做到這一點? – Josh

+0

啊!你的意思是完全保存網站,包括圖片等?我認爲這是可能的,但很難做到。有一些使用'wget'的方法可以做到這一點(順便說一句,因爲你需要用英文寫問題,'Strg'鍵在英文中被稱爲'Ctrl'鍵)。 –

回答

2

如果你想下載整個網站(比方說,www.google.com),您可以使用wget做到這一點:

wget --recursive --no-clobber --page-requisites --html-extension --convert-links --restrict-file-names=unix --domains google.com --no-parent www.google.com 

this website,您可以用這些參數:

  • - 遞歸:下載完整的網站
  • --domains google.com:不要關注(因此下載)鏈接外部google.com
  • - 無母公司:不要跟隨鏈接外部你打電話的文件夾(這意味着,如果你想下載www.google.com/firefox,你贏了沒有按照鏈接出現在這個firefox文件夾中)。
  • - 頁面必備條件:獲取頁面中的所有元素(CSS,圖像,腳本等)。
  • --html-extension:用.html擴展名保存文件。
  • - 轉換鏈接:將http://site.domain/folder/doc.html類型的鏈接轉換爲folder/doc.html,因此它們將在本地工作。
  • --restrict-文件名= UNIX:修改文件名(如果他們是怪異的)工作與UNIX命名規範完全兼容(這可能是=windows用於MS Windows文件系統,但我相信你使用的是UNIX兼容的操作系統)。
  • --no-clobber:不要覆蓋現有文件(只下載缺失的內容)。

當然,如果你想下載另一個網站,你將需要相應地改變--domains屬性。此外,wget並不總是捆綁在所有與UNIX兼容的操作系統中(例如Mac OS X),但總是有安裝它的方法(常見的GNU/Linux發行版,如Ubuntu,Debian等,默認情況下包含它) 。

希望這會有所幫助。

+1

另外請注意,您可以使用'wget --mirror http:// www.google.com'來下載整個站點,但是如果您想自定義您的下載,上面顯示的選項使該命令更加強大。 –