如何导出网页上的所有超链接?

如何导出网页上的所有超链接?

我需要一个解决方案来导出网页上的所有超链接(在网页上,而不是整个网站),以及指定我想要导出的链接的方法,例如仅以 开头的超链接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 | \
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 | \
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 指定前导字符串,还可以指定正则表达式模式(如果您在上面给出的命令中使用egrep或)。 如果您运行的是 Windows,请考虑利用grep -E
赛格威。不要忘记选择包Wget、、grepsed

答案2

如果你可以使用 Firefox,你可以使用插件Snap Links Plus

  1. 按住鼠标右键并拖动选择链接。

  2. 当它们突出显示时,按住 Control 键并松开鼠标右键。

相关内容