Command-Line

從命令行將頁面中的所有 url 設為絕對

  • October 18, 2017

我喜歡使用curl和命令行來處理 html 頁面。

相對網址很痛苦。

是否有一些簡單的實用程序可以使所有相對網址成為絕對網址?

理想情況下,這看起來像

curlabsolute $URL | process

你需要的是**wget**實用性:

假設我們需要下載一個由http://www.littlewebhut.com/articles/simple_web_page/.

命令(以下使用的url是真實的,可以“按原樣”測試命令):

wget -O simple_page -k http://www.littlewebhut.com/articles/simple_web_page/
  • -O( --output-document=file) - 文件不會寫入適當的文件,但所有文件將連接在一起並寫入file.
  • -k( --convert-links) - 下載完成後,將文件中的連結轉換為適合本地查看

在下載之前,我將僅展示上述網頁中的一些上下文 html 片段(線上版本):

...
<ul>
         <li><a href="/" class="color-menu">Home</a></li>
         <li><a href="/html/" class="color-menu">HTML</a></li>
         <li><a href="/css/" class="color-menu">CSS</a></li>
         <li><a href="/javascript/" class="color-menu">JavaScript/jQuery</a></li>
         <li><a href="/inkscape/" class="color-menu">Inkscape</a></li>
         <li><a href="/gimp/" class="color-menu">GIMP</a></li>
         <li><a href="/blender/" class="color-menu">Blender</a></li>
         <li><a href="/articles/" class="color-menu">Articles</a></li>
         <li><a href="/contact/" class="color-menu">Contact</a></li>
       </ul>

下載後的相同片段,保存在文件中simple_page

...
<ul>
         <li><a href="http://www.littlewebhut.com/" class="color-menu">Home</a></li>
         <li><a href="http://www.littlewebhut.com/html/" class="color-menu">HTML</a></li>
         <li><a href="http://www.littlewebhut.com/css/" class="color-menu">CSS</a></li>
         <li><a href="http://www.littlewebhut.com/javascript/" class="color-menu">JavaScript/jQuery</a></li>
         <li><a href="http://www.littlewebhut.com/inkscape/" class="color-menu">Inkscape</a></li>
         <li><a href="http://www.littlewebhut.com/gimp/" class="color-menu">GIMP</a></li>
         <li><a href="http://www.littlewebhut.com/blender/" class="color-menu">Blender</a></li>
         <li><a href="http://www.littlewebhut.com/articles/" class="color-menu">Articles</a></li>
         <li><a href="http://www.littlewebhut.com/contact/" class="color-menu">Contact</a></li>
       </ul>

引用自:https://unix.stackexchange.com/questions/398711