【问题标题】:Does the curl library execute javascript inside pages?curl 库是否在页面内执行 javascript?
【发布时间】:2011-06-22 04:28:39
【问题描述】:

我正在处理几个页面,其中 javascript 在页面加载时执行表单提交。

curl 库会在网页中自动执行 javascript 吗?如果是这样,有没有一种方法可以返回更改后的 DOM,而不是我使用简单 curl 代码返回的默认 DOM。

这是我当前的代码:

    $curl_handle=curl_init();
    curl_setopt($curl_handle,CURLOPT_URL,$url);
    $buffer = curl_exec_follow($curl_handle,10);        
    curl_setopt($curl_handle,CURLOPT_HEADER, 0);
    curl_setopt($curl_handle,CURLOPT_FOLLOWLOCATION, 1); 
    $buffer = curl_exec($curl_handle);

【问题讨论】:

  • cURL 没有 JavaScript 解析器,因此无法执行。

标签: php javascript curl


【解决方案1】:

不,它没有。它也不应用 css 样式。

【讨论】:

    【解决方案2】:

    No。嵌入了 JavaScript 的网页实际上是一个程序。 CURL 为您提供程序的源代码(HTML 和 JavaScript),但不运行该程序。

    要运行页面的嵌入式 JavaScript,您需要 (1) JavaScript 解释器,以及 (2) 页面的文档对象模型 (DOM)。

    浏览器有这些,但 PHP 没有

    人们正在开发这些的 PHP 版本,但开发这些是一项艰巨的任务。

    如果这是您需要的,您可以跳过 PHP,转而使用 WebKit 编写 C++ 代码。

    【讨论】:

    • 不应将网页描述为“程序”。
    【解决方案3】:

    PHP curl 不是一个完整的浏览器。它只是一个用于与服务器通信的库,使用 HTTP、FTP 等。它既不渲染也不解析。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-07
      • 1970-01-01
      • 2017-09-17
      • 2011-02-17
      相关资源
      最近更新 更多