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

R S*_*R S 15 downloads internet wget

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

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

Ben*_*ney 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参数来指定浏览器的参数,否则它将看到的唯一区别是不同的。如果你这样做,服务器不会看到任何区别。


184*_*615 5

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

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

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