使用cURL获取脚本内容


Using cURL to get script content

我正在使用cURL访问网站。问题是,我需要抓取的内容是由脚本生成的,如下所示:

function Button(){
...
document.getElementById("out").innerHTML = name;
}
<p id="out"></p>

使用cURL,我有页面的代码,但没有内容。我使用这个配置:

  $curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_REFERER, $referer);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookiefile);
$redirects=5000;
$data = curl_redirect_exec($curl,$redirects);
curl_close($curl);

我可以得到由脚本生成的内容。

您无法从PHP CURL获取JS中呈现的数据。您需要的是一个无头浏览器,它可以运行客户端脚本,如Phantom.JS或Casper.JS,这些脚本能够运行客户端JavaScript。