我想知道通过下载文件wget
并命名它们.asp
还是.php
意味着我下载网页?这些不是可执行文件吗?
如果是的话,下载一个.asp
或.php
文件后,可以将其转换为.html
文件吗?
答案1
尽管这些文件被命名为.asp
它们实际上是 HTML 文件。查看他们的内容来确认这一点,但使用扩展.asp
是因为这是用于实现该特定站点的技术。这是浏览器下载文件时使用的名称,因此也是将文件写入磁盘时使用的名称,但它们仍然是 HTML。
您还可以使用以下命令确认文件的类型file
:
$ file some.asp
在您之前的问题中,您提出了如何从 w3school 网站下载一堆页面(可以将这些网页下载为一本书吗?)。你展示了这个命令:
$ wget -r -np -nH -p -k http://www.w3schools.com/sql/default.asp
请注意运行该命令时为您生成的文件的结果:
$ file ./sql/sql_func_count.asp
./sql/sql_func_count.asp: HTML document, ASCII text, with very long lines, with CRLF line terminators
所以这是 then 的一个错误wget
,对吗?
不!这不是一个错误,这只是如何wget
和curl
行为。这就是我指导您httrack
在上面链接的其他问答中使用的部分原因。如果您注意到它产生的结果,您会发现文件名都.html
带有httrack
.wget
并且curl
尊重 URL 中文件的名称,因为它们是您访问这些文件时下载的实际文件的名称。 URL 实际上没有任何扩展的概念,这是操作系统主义。 URL 就是统一资源定位器。
URL 旨在唯一地查找互联网上的内容,而不是用于将其存储在本地以供以后使用。当您想要下载用于此类用途的在线内容时,您需要使用一个能够实际在本地镜像该内容并使其可在本地导航的工具。
httrack
为了允许本地存储的内容可离线导航,诸如此类的工具本质上违反了 URL 的一致性。wget
可以curl
哄骗这样做,但它通常更加麻烦且容易出错,因此作为一般规则,不鼓励这样做。
最好使用适合该工作的工具。对于在本地镜像在线内容,httrack
是合适的工具!
答案2
不,您提到的文件扩展名是脚本文件。这些是像程序一样执行的文件。当您在网页上单击它们时,它们就会被执行,从而产生您在浏览网站时获得的效果。