我需要一個解決方案來導出網頁上的所有超鏈接(在網頁上,而不是整個網站)以及一種指定我要導出的鏈接的方法,例如僅以開頭的超鏈接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,請考慮利用egrep
grep -E
西格文。不要忘記選擇軟體包Wget
、grep
和sed
。
答案2
如果您可以使用 Firefox,則可以使用該插件快照連結加
按住滑鼠右鍵並在連結周圍拖曳選取範圍。
當它們突出顯示時,按住 Control 鍵同時放開滑鼠右鍵。