2012-03-13 933 views
0

我尝试使用PHP/CURL编写webboot,但是我在处理一个特定页面时遇到问题,它正在动态加载一些内容! .. 来解释更多: 当我尝试使用PHP/CURL下载页面时,我没有收到一些内容!然后我发现这个内容在加载页面后加载。这就是为什么CURL不处理这些错过的内容。使用PHP/CURL获取(动态加载页面)内容?

任何人都可以帮助我!

我的样本代码:

$ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_REFERER, $reffer); 
    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $redirect); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, ABSOLUTE_PATH."Cookies/cookies.txt"); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, ABSOLUTE_PATH."Cookies/cookies.txt"); 
$result = curl_exec($ch); 
+0

无论你做什么curl都不会作为一个启用javascript的浏览器,所以你不能通过ajax/jsonp等获取内容;你可以尝试一个模拟浏览器的测试平台,但它似乎打败了目的;甚至没有谷歌分析这种类型的内容;如果你只是需要来自该页面的数据(并且你没有创建抓取程序),只需进行多个调用并复制系统 – mishu 2012-03-13 15:54:17

+0

'只需进行多次调用并复制系统'..你能解释一下吗! ..并且你可以命名这些'模拟浏览器的平台'之一。谢谢 – user504363 2012-03-13 16:18:34

回答

1

您试图加载哪个网址?这可能是因为您请求的页面有一个或多个AJAX请求,事后才加载内容。我不认为cURL可以通过AJAX或其他XHR请求来容纳运行时加载的信息。

你可能想看看类似PhantomJS的东西,它是一个无头WebKit浏览器,它将完全执行页面并返回动态组装的DOM。

+0

shorouknews.com/caricature/waleed – user504363 2012-03-13 16:27:27

+0

是的,它肯定是通过AJAX页面加载后加载数据 – infomaniac 2012-03-13 17:09:01

+0

谢谢,我用[json post](http://www.lornajane.net/posts/2011/posting -json-data-with-php-curl)和curl – user504363 2012-03-14 10:06:04