Answers:
wget
将仅检索文档。如果文档是HTML格式,则需要的是解析文档的结果。
例如,lynx -dump -nolist
如果周围有山猫,则可以使用。
lynx
是一款轻巧,简单的Web浏览器,具有-dump
用于输出解析过程结果的功能。-nolist
避免在最后出现链接列表,如果页面有任何超链接,该列表就会出现。
正如@Thor所提到的,elinks
也可以用于此操作,因为它也有一个-dump
选项(并且必须-no-references
省略链接列表)。如果您使用-sigh-框架(MTFBWY)跨过某些站点,它可能特别有用。
另外,请记住,除非页面真的只是带有HTML标记的C代码,否则您将需要检查结果,以确保那里没有C代码。
如果您没有安装这些其他工具,仅安装了wget,并且页面没有仅格式化纯文本和链接(例如源代码或文件列表),则可以使用sed剥离HTML,如下所示:
wget -qO- http://address/of/page/you/want/to/view/ | sed -e 's/<[^>]*>//g'
这使用wget将页面的源转储到STDOUT并进行sed剥离任何<>对以及它们之间的任何东西。
然后,您可以使用>将sed命令的输出重定向到要创建的文件:
wget -qO- http://.../ | sed -e 's/<[^>]*>//g' > downloaded_file.txt
注意:您可能会发现文件中不需要的多余空格(例如,行缩进了几列)
使用文本编辑器整理文件(或下载C源代码时的源格式化程序)可能最简单。
如果您需要对文件的每一行执行相同的简单操作,则可以在sed命令中包括执行此操作的命令(此处删除一个前导空格):
wget -qO- http://.../ | sed -e 's/<[^>]*>//g;s/^ //g' > downloaded_stripped_file.txt
.c
。这并不难,但是取决于页面结构。如果您提供链接,则可能有人会为您提供准确的代码。不然sed
还是perl
你的朋友。