我需要一个解决方案来导出网页上的所有超链接(在网页上,而不是整个网站),以及指定我想要导出的链接的方法,例如仅以 开头的超链接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
、、grep
和sed
。
答案2
如果你可以使用 Firefox,你可以使用插件Snap Links Plus
按住鼠标右键并拖动选择链接。
当它们突出显示时,按住 Control 键并松开鼠标右键。