如何提取网页的所有外部链接?[重复]


3

这个问题在这里已有答案:

如何提取网页的所有外部链接并将其保存到文件中?

如果有任何命令行工具会很棒。

这是相当同样的问题在这里,答案优雅地工作了google.com,但由于某种原因,它不与如YouTube的合作。我将解释一下:让我们以此页为例。如果我试着跑

lynx -dump http://www.youtube.com/playlist?list=PLAA9A2EFA0E3A2039&feature=plcp | awk '/http/{print $2}' | grep watch > links.txt

然后它,不像在google.com上使用它,首先执行lynx的转储,然后控制awk(出于某种原因使用空输入),最后不写入文件links.txt。只有在那之后它才显示lynx的非过滤转储,而无法将其转移到其他地方。

先感谢您!


在某个地方,我看到提到“狗”命令,它可以做同样的事情,但未能在其他地方找到它。
任何人

Answers:


3
lynx -dump 'http://www.youtube.com/playlist?list=PLAA9A2EFA0E3A2039&feature=plcp' | awk '/http/{print $2}' | grep watch > links.txt

作品。你需要逃避&链接。

在原始行中,未转义的&将把Lynx抛到后台,留下空输入links.txt。后台进程仍会将其输出写入您所在的终端,但正如您所注意到的,它不会执行>重定向(歧义:哪个进程应该写入文件?)。

附录:我假设你的原始命令有一个拼写错误:开头和结尾'都不应该出现。否则,您将收到尝试执行不存在的命令的其他错误消息。删除它们会给出您描述的行为。


非常感谢!讨厌自己这么新手。但是,使用Linux的所有2周都不是时候,是吗?再次感谢。
任何人

@ user1212010:如果他/她认为答案解决了问题,该网站依赖于提问者将答案标记为正确。检查它是在SU上说“谢谢”的最佳方式:-)。
Daniel Andersson

0

使用您喜欢的网站,搜索“网站刮刀脚本”或“网站抓取脚本”以及您最熟悉的编程语言。您有成千上万的选项,所以您可以进行最详细的搜索。


0

虽然有很多选项可供选择,但我建议将python与BeautifilSoup一起使用 - 这将使您可以完全控制该过程,包括以下重定向,处理自签名/过期的SSL证书,解决无效的HTML,仅从中提取链接特定页面块等

有关示例,请查看以下主题:https//stackoverflow.com/questions/1080411/retrieve-links-from-web-page-using-python-and-beautiful-soup

安装BeautifilSoup与运行pip install BeautifilSoupeasy_install BeautifilSoup使用Linux时一样简单。在win32上,它可能是最容易使用的二进制安装程序

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.