为什么我要使用 Wget 而不是浏览器?

为什么我要使用 Wget 而不是浏览器?

在什么情况下我应该选择使用获得而不是浏览器?

我听说理查德·斯托曼出于某些匿名原因,使用它而不是浏览器。当您使用 Wget 获取文件时,服务器会看到什么?

答案1

通常,您永远不会使用它“代替浏览器”。浏览器呈现 HTML、使链接可点击(而不是必须手动将 URL 复制到另一个 wget 命令中)等。使用 wget 作为人类几乎没有好处。如果您担心隐私问题,有无数种方法可以清理浏览器(或者您可以使用功能较少的浏览器,例如 Lynx,如果您真的想获得基本功能而不破坏所有人类用户界面的外观)。

当您想要一种快速、廉价、可编写脚本/命令行的文件下载方式时,主要使用 wget。例如,您可以将 wget 放入脚本中,以下载经常更新新数据的网页,而浏览器实际上无法做到这一点。您可以使用 wget 的各种选项来抓取并自动保存网站,而大多数浏览器无法做到这一点,至少在没有扩展的情况下无法做到这一点。

简而言之,浏览器是供人类浏览互联网的应用程序,而 wget 是供机器和高级用户通过 HTTP 移动数据的工具。它们的作用非常相似(从网站提取文件),但使用方式却截然不同。

关于使用 wget 获取内容时服务器“看到”的内容:所有 HTTP 客户端(浏览器、wget、curl 和其他类似应用程序)都会传输所谓的“用户代理”,这只是一个描述浏览器的字符串(或者现在描述浏览器具有哪些功能)。这可用于根据用户的浏览器显示不同的内容(即 Google 试图不向已经使用 Chrome 的用户宣传 Chrome)。有些傻瓜试图通过阻止 wget 的用户代理字符串来阻止高级用户的恶作剧,但您可以伪造 Chrome 用户代理字符串来绕过这一点。更多时候它只是用于统计,以便您了解不同浏览器的流行程度,从而知道使用哪些浏览器进行最彻底的测试。

如果您使用 wget 的抓取功能,服务器将看到许多快速请求,这些请求大多按字母顺序排列。这很容易让人看出您正在抓取他们的网站。它看起来与用户浏览完全不同。对于在浏览器中发出请求的人类用户,每个页面请求之后都会跟随着该页面上的所有图像,然后会有一些延迟,然后会请求另一个随机页面(或可能是具有明确目的的一串页面)。

答案2

正如其他人提到的,wget它的优点是不与附加组件、cookie 和缓存捆绑在一起,这使得它更稳定、更安全。但浏览器和wget实际上有很大的不同普通的用途。

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

对于服务器来说,它唯一能看到的差异就是一个不同,user agent除非你用它的--user-agent参数指定浏览器的。如果你这么做了,服务器将看不到任何差异。

答案3

1)由脚本而非人工发起的下载

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

Wget 有一些命令行选项可以控制服务器看到和思考的内容,包括下载页面请求之间的任意延迟。但如果网站服务器有一些反机器人政策,你通常会浪费大量的时间和流量才能得到可接受的结果。

答案4

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

wget 没有内存保留功能。

也就是说,浏览器更方便,我不在乎 NSA 是否知道我4.7.2-040702-generic上周下载了什么。我使用浏览器进行网上银行和 PayPal 交易,这可以说比我使用 wget 下载的大多数文件更为重要。

相关内容