【发布时间】:2016-04-13 17:50:40
【问题描述】:
我想将特定页面转换为文本文件或使用 wget(例如-m)下载其中的一些链接,但是大多数工具都无法解释源代码。
例如:
$ curl http://www.free-energy-info.co.uk/ | html2text
curl: (23) Failed writing body (0 != 2896)
但是使用-check 会正确返回源代码:
$ html2text -check http://www.free-energy-info.co.uk/
<HTML>
<HEAD>
<TITLE>
...
然后我发现这个页面包含一些二进制数据和特殊字符,例如:
$ curl -s http://www.free-energy-info.co.uk/ | head | cat -v
M-^?M-~<^@h^@t^@m^@l^@>^@
^@
^@<^@h^@e^@a^@d^@>^@
^@
^@<^@T^@I^@T^@L^@E^@>^@F^@r^@e^@e^@-^@E^@n^@e^@r^@g^@y^@ ^@D^@e^@v^@i^@c^@e^@s^@,^@ ^@z^@e^@r^@o^@-^@p^@o^@i^@n^@t^@ ^@e^@n^@e^@r^@g^@y^@,^@ ^@a^@n^@d^@ ^@w^@a^@t^@e^@r^@ ^@a^@s^@ ^@H^@H^@O^@ ^@f^@u^@e^@l^@<^@/^@T^@I^@T^@L^@E^@>^@
这个网站有什么问题?是网络服务器的错误,源代码被故意打乱还是使用了一些特殊的格式(因为它看起来没有压缩)?如何使这个页面对于标准的 utils(如wget)可以理解?
请注意,它在网络浏览器中运行良好。
【问题讨论】:
-
使用 curl 获得相同的结果,在发送有效的用户代理时也是如此。但是,wget 对我有用。
-
@Paul Wget 下载单个页面,但它没有跟随任何链接(指定
-m或-r时),就像它不理解源代码一样。
标签: html curl special-characters response wget