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


PHP: How to scrape content of the website based on Javascript

我正在尝试使用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的浏览器。

非常感谢你的建议。

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

我向你推荐两种方法:

  1. 利用v8jsphp插件在抓取时处理网站的js。请参阅此处的用法示例
  2. 使用Selenium、iMacros或webRobots.io Chrome ext.模拟基于JS的浏览器。但在这种情况下,您不需要编写PHP脚本