2010-09-21 24 views
0

有了这个代码我试图下载该网页:http://www.kayak.com/s/...卷曲问题,不能下载整个网页

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,'http://www.kayak.com/s/search/air?ai=kayaksample&do=y&ft=ow&ns=n&cb=e&pa=1&l1=ZAG&t1=a&df=dmy&d1=4/10/2010&depart_flex=exact&r1=y&l2=LON&t2=a&d2=11/10/2010&return_flex&r2=y'); 

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FAILONERROR, true); 
curl_setopt($ch, CURLOPT_REFERER,"http://wwww.google.com"); 

$content = curl_exec ($ch); 
echo $content; 

你可以看到演示:http://www.pointout.org/test.php
正如你所看到的部分价格缺失。
什么可能是错的?

回答

1

这不会按照您认为的方式工作。原因是价格不在您获得的初始HTML响应中。相反,有一些使用AJAX加载页面时加载价格的Javascript魔术出现了。

+0

是的,但如何httrack(http://www.httrack.com/)下载此网页,完美的作品。 – salafek 2010-09-21 02:12:34

+0

这是因为httrack不仅仅是使用cURL加载页面。 httrack也解析它加载的HTML,然后获取所有附加资源,如图像,外部Javascript等 – 2010-09-21 02:28:24

0

你的网页内容不是简单的html,因此它需要先由浏览器呈现,然后才能下载它。因此,不要使用卷曲,请使用浏览器进行下载。您可以使用iMacros for Firefox并编写一个简短的iMacros宏(SAVEAS TYPE = CPL至save the complete website ...)并通过command line触发它。