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

标签 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 的浏览器。

非常感谢您的任何建议。

最佳答案

I must use PHP in this case so i need to simulate JS based browser.

我推荐两种方式:

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

关于javascript - PHP:如何基于 Javascript 抓取网站内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28884428/

相关文章:

javascript - vue.js CLI 应用程序中的 <b-list-group-item> 未呈现 bootstrap-vue

php - 使用 PHPMailer 发送邮件时无法在主题中发送表情符号

php - 某些网站的 cURL 超时,但在其他网站上运行良好

javascript - 暂停函数执行,直到另一个函数返回

javascript - 如何正则表达式,并在单词之间添加 "-"?

javascript - 将数组传递给 JavaScript 显示为对象

php - GCP SQL Postgres 权限问题 : can't run a query with postgres user with generated symfony db

javascript - 如何在使用 Ajax 时在 JavaScript 和 PHP 中为下拉菜单设置增量值

java - 安卓工作室 : NOAA Rest API

c++ - https 后失败 C++