使用 curl 更改用户代理以获取不同操作系统的 URL 源代码 & 浏览器
使用 curl 我们可以检索任何指定 URL 的 HTML 和 CSS 源代码,甚至是 http 标头信息,但有些站点为不同的操作系统和浏览器版本提供完全不同的内容或 HTML,这是通过检测他们的用户代理来完成的。正因为如此,我们可以欺骗另一个浏览器版本和操作系统的用户代理,这允许网络开发人员快速访问网站源代码的那些替代变体。出于此处的目的,我们将使用 curl 从命令行实现此目的。使用curl命令欺骗用户代理的基本语法如下:
curl -A UserAgentString>"
当然,您将用与您希望模仿的浏览器相匹配的合法用户代理字符串替换UserAgentString。
让我们看几个带有各种用户代理字符串的例子。
不同源HTML和CSS最常见的情况之一是对于具有精简移动版本的网站,您可以通过以下方式检索特定于iPhone的源代码:
"curl -A Mozilla/5.0(iPhone;U;CPU iPhone OS 4_3_3,如 Mac OS X;en-us)AppleWebKit/533.17.9(KHTML,如 Gecko ) 版本/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,如 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/"
Yet another spoofing Windows XP with Firefox 3:
"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 菜单设置不同的用户代理:
此屏幕截图取自一篇关于让Facebook 视频聊天呼叫在OS X Lion 中工作的文章,这是通过将浏览器用户代理更改为Facebook 认为兼容的版本来实现的。