PHP:如何基于Javascript抓取网站的内容

时间:2015-03-05 17:51:35

标签: javascript php curl web-scraping noscript

我正在尝试使用PHP simplehtmldom库获取此网站的内容。

http://www.immigration.govt.nz/migrant/stream/work/workingholiday/czechwhs.htm

它不起作用,所以我尝试使用CURL:

function curl_get_file_contents($URL)
{
    $c = curl_init();
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($c, CURLOPT_URL, $URL);
    $contents = curl_exec($c);
    curl_close($c);

    if ($contents) return $contents;
    else return FALSE;
}

但总是只使用一些JS代码和内容:

<noscript>Please enable JavaScript to view the page content.</noscript>

有可能使用PHP解决这个问题吗?我必须在这种情况下使用PHP,所以我需要模拟基于JS的浏览器。

非常感谢任何建议。

1 个答案:

答案 0 :(得分:2)

  

在这种情况下我必须使用PHP,所以我需要模拟基于JS的浏览器。

我建议你两种方式:

  1. 在抓取时利用v8js php plugin处理网站的js。请参阅here一个用法示例。
  2. 使用Selenium,iMacros或webRobots.io Chrome分机模拟基于JS的浏览器但在这种情况下,您不在PHP脚本中。