wget 的替代品

wget 的替代品

我在服务器上有一个网站,基本上是一堆 HTML 页面、图片和声音。

我丢失了该服务器的密码,我需要获取存储在那里的所有内容。我可以一页一页地浏览并保存所有内容,但该网站有 100 多个页面。

我正在使用 OSX。我尝试过使用,wget但我认为服务器阻止了它。

我可以使用任何替代方法来获取该内容吗?

答案1

如果服务器阻止 wget,它很可能是根据 http 标头的“User-agent:”字段来执行此操作,因为这是它首先了解的唯一方法。它也可能会阻止您的 IP,在这种情况下使用不同的软件将无济于事,或者某些根据一组请求的速度来识别自动化的方案(因为真实的人不会在 3.2 秒内浏览 100 个页面) 。我还没有听说有人这样做,但这是可能的。

我还没有听说过减慢 wget 速度的方法,但是有一种方法可以欺骗 user-agent 字段:

wget --user-agent=""

将根据手册页完全删除“User-agent:”,因为它不是强制性的。如果服务器不喜欢这样,请尝试--user-agent="Mozilla/5.0"哪个应该足够好。

当然,如果您更好地解释为什么“认为服务器阻止了”,将会有所帮助。 wget 是否说了些什么,或者只是超时了?

答案2

我通常使用httrack用于从站点下载/镜像网页内容。

$ httrack http://2011.example.com -K -w -O . -%v --robots=0 -c1 %e0

运行后,您将得到一个本地且可浏览的目录结构。例如:

$ ls -l
total 304
-rw-r--r--  1 saml saml   4243 Aug 17 10:20 backblue.gif
-rw-r--r--  1 saml saml    828 Aug 17 10:20 fade.gif
drwx------  3 saml saml   4096 Aug 17 10:20 hts-cache
-rw-rw-r--  1 saml saml    233 Aug 17 10:20 hts-in_progress.lock
-rw-rw-r--  1 saml saml   1517 Aug 17 10:20 hts-log.txt
-rw-------  1 saml saml 271920 Aug 17 10:22 hts-nohup.out
-rw-r--r--  1 saml saml   5141 Aug 17 10:20 index.html
drwxr-xr-x 10 saml saml   4096 Aug 17 10:21 2011.example.com

下载时您将看到以下类型的输出:

Bytes saved:    21,89KiB           Links scanned:   12/45 (+4)
Time:   2s                         Files written:   4
Transfer rate:  2,65KiB/s (2,65KiB/s)  Files updated:   1
Active connections:     1          Errors:  7

Current job: parsing HTML file (57%)
 request -  2011.example.com/cgi-bin/hostnames.pl   0B /    8,00KiB

它可以在后台运行和/或中止,然后再恢复。这只是其功能的冰山一角。还有一个 GUI 用于设置下载并监控下载进度。

有大量关于httrack网站并通过谷歌搜索。

相关内容