使用 curl 更改用户代理以获取不同操作系统和浏览器的 URL 源代码

终端 使用 curl 我们可以检索 HTML 和 CSS 源代码任何指定的 URL 甚至 http header info,但有些站点提供完全不同的内容或 HTML对于不同的操作系统和浏览器版本,这是通过检测他们的用户代理来完成的。正因为如此,我们可以欺骗另一个浏览器版本和操作系统的用户代理,这允许网络开发人员快速访问网站源代码的那些替代变体。出于此处的目的,我们将使用 curl 从命令行实现此目的。

用curl命令欺骗用户代理的基本语法如下:

curl -A "UserAgentString" http://url.com

当然,您将用与您希望模仿的浏览器相匹配的合法用户代理字符串替换 UserAgentString。

让我们看几个使用各种用户代理字符串的示例。

不同源 HTML 和 CSS 的最常见情况之一是对于具有精简移动版本的网站,您可以通过以下方式检索特定于 iPhone 的源代码:

curl -A "Mozilla/5.0 (iPhone U CPU iPhone OS 4_3_3 like Mac OS X en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5" http://www.apple.com

一些网站也对其他浏览器执行此操作。这将是 Mac OS X 10.6.8 中的 Chrome 12:

curl -A "Mozilla/5.0 (Macintosh Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" http ://microsoft.com

这是另一个将 Mac App Store 和 Mac OS X 10.6.7 伪装成用户代理的工具,对于从脚本查询 App Store 很有用(更多信息请参见 TUAW):

curl -silent -A "iMacAppStore/1.0.1 (Macintosh U Intel Mac OS X 10.6.7 en) AppleWebKit/533.20.25" http://ax.search.itunes.apple。 com/

又一个用 Firefox 3 欺骗 Windows XP 的方法:

curl -A "Mozilla/5.0 (Windows U Windows NT 5.1 de rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3" http://yahoo.com

您可以在整个网络上找到用户代理字符串,如果您想检索网站源作为该用户代理,请确保将它们包含在引号中。如果您想阅读有关用户代理的更多信息,维基百科 有关于该主题的很好的条目。

注意:这是有意通过命令行完成的,针对那些喜欢从终端工作,但有一些简单的方法可以通过标准图形应用程序和 Web 浏览器(如 Safari、Chrome 和 Firefox)执行此操作。 Safari 可能是最简单的,因为您可以直接从 Developer 菜单设置不同的用户代理:

更改用户代理 Safari

此屏幕截图取自一篇关于在 OS X 中使用 Facebook 视频聊天通话的文章Lion,这是通过将浏览器用户代理更改为 Facebook 认为兼容的版本来实现的。