2013-12-08 26 views
0

對於像www.example.com這樣的給定網址,我想通過例如www.example.com提取蘋果觸摸圖標。搜索DOM該屬性:從手機網站解析蘋果觸摸圖標

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

的問題是,example.com不提供這個標籤正常的網站上,只是在移動m.example.com網站。我認爲他們使用服務器端設備檢測並僅在移動設備上添加此標籤。 關於如何在這些網站上獲取此圖標的任何想法?

+1

服務器端重定向可能使用User-Agent HTTP頭來檢測iOS並轉發到移動站點的響應,如果您從前端執行此操作,則無法設置出於安全原因,通過XHR特定的頭文件。您需要在您的後端設置代理服務來設置User-Agent頭,發出請求並將其返回給您的JS功能。 – Barney

回答

1

如果example.comm.example.com移動版本,它們是用User Agent sniffing可能重定向手機用戶。

該網站的服務器基本上會查看您的請求的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的重定向。