2010-06-21 53 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