为什么要使用Wget而不是浏览器?[关闭]


15

在哪种情况下,我应该更喜欢使用Wget而不是浏览器?

我听说出于某些匿名原因,Richard Stallman使用了它而不是浏览器。使用Wget获取文件时,服务器会看到什么?


3
如果我只需要下载一个文件,为什么我会浪费资源打开整个浏览器来做呢?您从哪里听说Stallman wget出于“某些安全原因”使用的?
edwinksl

3
这里至少有四个问题:1. wget与浏览器的优点是什么?2. wget如何呈现给网络服务器;3. wget与Web浏览器相比是否具有任何隐私保护功能;4. [Richard] Stallman是否使用wget,如果是,则使用wget吗?
本·阿弗林

4
根据此“我如何处理我的计算页面”,斯托曼使用了“类似于wget”的东西:每封电子邮件获取网页(但他确实使用图形浏览器打开获取的页面);他还使用图形浏览器通过Tor来浏览Web,因此通过电子邮件获取不是唯一的方法。
2016年

3
请张贴您的听力
Anwar

3
“当您使用Wget获取文件时,服务器会想到/看到什么?”它认为“哦,那一定是斯托曼!我会跟他个性化的内容混乱。”
JDługosz

Answers:


25

通常,您永远不会“代替浏览器”使用它。浏览器呈现HTML,使链接可单击(而不是必须将URL手动复制到另一个wget命令中),等等。实际上,将wget用作人类没有任何好处。如果您担心隐私问题,可以使用一百万种方法来清理浏览器(或者您可以使用功能较弱的浏览器,例如Lynx,如果您确实想在不破坏人机界面外观的情况下获得准系统功能)。

Wget主要用于需要快速,廉价,可编写脚本/命令行的文件下载方式。因此,例如,您可以将wget放入脚本中,以下载一个经常更新新数据的网页,而这实际上是浏览器无法使用的。您可以使用wget的各种选项来爬网并自动保存网站,这是大多数浏览器无法做到的,至少不是没有扩展名的网站。

简而言之,浏览器是人类浏览互联网的应用程序,wget是机器和高级用户通过HTTP传输数据的工具。它们的操作非常相似(从网站中拉出文件),但用法完全不同。

关于在使用wget进行操作时哪些服务器会“看到”:所有HTTP客户端(浏览器,wget,curl,其他类似应用程序)都传输所谓的“用户代理”,它只是描述浏览器的字符串(或者如今,描述其具有的浏览器功能)。可以根据用户的浏览器显示不同的内容(即Google尝试不向已经使用Chrome的用户宣传Chrome)。一些傻瓜试图通过阻止wget的用户代理字符串来阻止高级用户的恶作剧,但是您可以伪造Chrome用户代理字符串来解决此问题。通常,它只是用于统计数据,因此您可以了解不同浏览器的流行程度,从而可以最全面地测试哪些浏览器。

如果使用wget的爬网功能,则服务器将按字母顺序排列看到许多快速请求。您正在抓捕他们的网站,这真是死定了。它看起来与用户浏览完全不同。当人类用户在浏览器中发出请求时,每个页面请求之后都是该页面上的所有图像,然后有一些延迟,然后又请求另一个随机页面(或者可能是目的明确的页面字符串) 。


16

正如其他人提到的那样,wget它的好处是不与附加组件,Cookie和缓存捆绑在一起,这使它可能更加稳定和安全。但是,浏览器和wget实际上有非常不同的正常使用。

wget是一个命令行实用程序,用于检索内容而不显示内容。它可用于通过FTP,HTTP和HTTPS检索和下载任何内容,包括任何文件类型(HTML,图像,二进制文件等)。

对于服务器,user agent除非您使用其--user-agent参数指定浏览器的参数,否则它将看到的唯一区别是不同的。如果这样做,服务器将看不到任何差异。


5

1)由脚本而不是人类发起的下载

2)下载整个网站(或网站的片段),而不是单独的页面。(Wget可以自动跟踪链接。)

Wget具有一些命令行选项来控制服务器看到和思考的内容,包括下载页面的请求之间的任意延迟。但是,如果站点服务器具有某些反机器人策略,则在获得可接受的结果之前,您通常会浪费大量时间和流量。


3)当没有容易访问的浏览器时(例如,通过ssh),由人启动下载
Dezza

4

使用浏览器时,浏览器中的所有内容都是活动的,包括不受欢迎的插件甚至是恶意软件,而wget是一个简单的命令,它可以下载内容,并且完全不执行其他任何操作。

浏览器的安全性未必一定会降低,但安全性可能会降低。

服务器照常“看到”下载请求。


4

浏览器可以将您的活动记录在历史记录中并缓存文件。

wget没有内存保留。

那就是说浏览器更方便,我不在乎NSA是否知道我4.7.2-040702-generic上周下载了。我将浏览器用于在线银行和Paypal,可以说,这比我可以通过wget下载的大多数文件更为重要。


2

作为使用远程Ubuntu安装的开发人员,安装OS GUI通常没有什么意义。在此“命令行”环境中,wget是用于从Web下载文件的基本工具。

我什至不确定可以从终端运行哪种浏览器(如果有的话)。


2
w3m是一个很棒的终端浏览器:) en.wikipedia.org/wiki/W3m
kalenpw

lynx是另一个lynx.browser.org
rviertel
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.