如何匯出網頁上的所有超連結?

如何匯出網頁上的所有超連結?

我需要一個解決方案來導出網頁上的所有超鏈接(在網頁上,而不是整個網站)以及一種指定我要導出的鏈接的方法,例如僅以開頭的超鏈接https://superuser.com/questions/排除其他一切。
首選匯出為文字文件,結果應逐層顯示,每行一個 URL:

https://superuser.com/questions/1  
https://superuser.com/questions/2  
https://superuser.com/questions/3
[...]

答案1

如果您在 Linux 或 Unix 系統(如 FreeBSD 或 macOS)上執行,您可以開啟終端機會話並執行下列命令:

wget -O - http://example.com/webpage.htm | wget -O - http://example.com/webpage.htm | \
sed 's/href=/\nhref=/g' | \
grep href=\"http://specify.com | \
sed 's/.*href="//g;s/".*//g' > out.txt

通常情況下,<a href>一行中可能有多個標籤,因此您必須先將它們剪切掉(第一個sed在每個關鍵字之前添加換行符,href以確保一行中不超過一個)。
要從多個相似頁面提取鏈接,例如本網站前 10 頁上的所有問題,請使用循環for

對於 $(seq 1 10) 中的 i;做
wget -O - http://superuser.com/questions?page=$i | wget -O - http://superuser.com/questions?page=$i | \
sed 's/href=/\nhref=/g' | \
grep -E 'href="http://superuser.com/questions/[0-9]+' | \
sed 's/.*href="//g;s/".*//g' >> out.txt
完畢

請記住替換http://example.com/webpage.htm為您的實際頁面 URL 和http://specify.com您要指定的前面的字串。如果在上面給出的命令中使用或 ,
您不僅可以為要匯出的 URL 指定前面的字串,還可以指定正規表示式模式。 如果您使用的是 Windows,請考慮利用egrepgrep -E
西格文。不要忘記選擇軟體包Wgetgrepsed

答案2

如果您可以使用 Firefox,則可以使用該插件快照連結加

  1. 按住滑鼠右鍵並在連結周圍拖曳選取範圍。

  2. 當它們突出顯示時,按住 Control 鍵同時放開滑鼠右鍵。

相關內容