2010-06-21 105 views

回答

2

當您引用的搜索頁面已加載時,它會通過javascript/ajax向其他位置發出請求,然後填充搜索結果。這是您在頁面中看到的內容。 Hpricot本身無法幫助您,因爲它無法解釋頁面附帶的JavaScript以獲取實際的搜索結果列表。

現在,如果您感興趣的是搜索結果,則需要分析當您進入該頁面並輸入搜索查詢時會發生的情況。在頁面中的一些JavaScript接受你的查詢,並且調用(通過XMLHttpRequest或類似的AJAX技術)蘋果服務器中的其他腳本。這是實際在數據庫中進行搜索並返回結果的人員。

我建議你使用Firebug插件安裝Firefox,或者用其他方式查看頁面及其javascript組件發送和/或接收的實際請求。你會看到,對於你提到的搜索頁面,它取兩個部分:一是「特色」的結果來自這個網址:

http://www.apple.com/global/scripts/search_featured.php?q=mac+mini&section=global&geo=uk

通知搜索字符串是在「Q」參數。

其次,長期結果列表來自這裏:

http://www.apple.com/search/service/nph-search10?site=uk_www&filter=1&snum=50&q=mac+mini

這些都是XML文檔;你可能有更好的運氣用Hpricot解析這些URL。

+0

不錯的一個..剛剛發佈了這個後,就解決了這個問題。離桌子有點奇怪幫助一堆。感謝您的幫助:) – discoml 2010-06-21 19:28:15

+0

謝謝!極大地幫助了我:P – 2013-10-21 11:33:51