从移动网站解析苹果触摸图标

Parse apple-touch-icon from mobile websites

本文关键字:苹果 触摸 图标 移动 移动网 网站      更新时间:2024-04-27

对于给定的url(如www.example.com),我想通过例如在dom中搜索以下属性来提取apple touch图标:

<link rel="apple-touch-icon" href="touch-icon-iphone.png">

问题是example.com没有在普通网站上提供这个标签,只是在移动的m.example.com网站上提供。我认为他们使用服务器端设备检测,只在移动设备上添加这个标签。你知道我如何在这样的网站上获得这些图标吗?

如果example.com有一个m.example.com移动版本,他们很可能使用用户代理嗅探重定向手机用户。

网站的服务器基本上会查看请求的User-Agent HTTP标头,并将其与一组值进行匹配,以检测移动浏览器。以下是如何在Apache中实现的示例:

RewriteCond %{HTTP_HOST} ^(www'.)?example'.com$ [NC]
RewriteCond %{HTTP_USER_AGENT} (.*)iPhone(.*) [NC,OR]
RewriteRule ^ http://m.example.com [L,QSA]

好消息是,您可以通过自己设置标头来欺骗服务器为您提供m.example.com。这里有一个卷曲的例子:

curl facebook.com
curl facebook.com -L -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"

第一个将检索facebook.com的HTML,第二个将用户代理标头设置为iPhone的值。注意,我们必须使用-L选项,以便curl遵循从facebook.comm.facebook.com的重定向。