Linux 如何抓取網頁頁面 並 將相關連結置換 或 完整抓取下來

網頁的頁面一般 css / js / img 這些會是相對路徑、獨立網址.. 等等, 但是想要抓下頁面時, 直接瀏覽此頁, 是可以頁面完整正常顯示的, 要如何做呢?

Linux 如何抓取網頁頁面 並 將相關連結置換 或 完整抓取下來

一般頁面抓下來時, 相對路徑的檔案, 就會抓不到, 於是就很容易頁面跑掉、某些離線應該能有的功能會無法使用, 想要將這些抓下來, 或者全部改成線上的網址, 可以使用 wget 來達成~

註: 本來想說要自己寫 code 來處理, 將 href / src 抓出來, 若不是 http / https / file / ftp :// 就要抓下來(含目錄), 或者就是要寫上路徑.. 等等, 後來想到 wget 的 mirror 功能, 果然 man wget 就找到合適的用法.

WGET 使用兩個參數來達成上述講的功能:

  • --convert-links – convert all the links (also to stuff like CSS stylesheets) to relative, so it will be suitable for offline viewing.
  • --page-requisites – Download things like CSS style-sheets and images required to properly display the page offline.

把網頁抓下來, 自動把路徑修復

  • wget --convert-links https://blog.longwin.com.tw/

分析網頁路徑, 在 local 把相關目錄建立, 然後把 css / js / img 等等都抓下來

  • wget --page-requisites https://blog.longwin.com.tw/

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈Linux 如何抓取網頁頁面 並 將相關連結置換 或 完整抓取下來〉中有 5 則留言

    1. 謝謝版主的回應
      想再請教版主一個問題
      將wget redirecting到standard out
      會hang住
      該怎麼解決這問題呢?

    2. 他在抓的時候會去解析, 那並不是 hang 住, 你等他一下, 它解析完就會開始抓 css / js .. 那些東西下來.

    3. 版主
      剛剛試一下
      同一網頁
      如果是存成file
      速度很快
      但是redirecting到standard out
      就停好久
      等了半天也出不來 .....

Dum 發表迴響 取消回覆

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料