wget的替代品


13

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

我忘记了该服务器的密码,因此需要获取存储在该服务器上的所有内容。我可以逐页保存所有内容,但该站点有100多个页面。

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

我可以使用其他方法来获取该内容吗?


如果您对服务器具有物理访问权限,请引导至单用户模式并恢复密码。debuntu.org/…–
spuder

Answers:


15

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

我也没有听说过减慢wget速度的方法,但是有一种欺骗用户代理字段的方法:

wget --user-agent=""

由于不是强制性的,因此将根据手册页完全删除“ User-agent:”。如果服务器不喜欢这样,请尝试使用--user-agent="Mozilla/5.0"该服务器就足够了。

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


哦耶!谢谢。我在wget帮助中想念它。现在正在工作!!!!!!!!!!!!!!!!!!!!!!!!!!!
SpaceDog

5
wget有很多选项可以在两次查询之间等待,限制速率或下载量。检查info页面以获取详细信息。
斯特凡Chazelas

6

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

$ 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网站上和通过谷歌搜索有大量文档。

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.