【问题标题】:How to simulate that JavaScript is enabled with PHP Curl?如何模拟 PHP Curl 启用了 JavaScript?
【发布时间】:2011-05-14 14:01:37
【问题描述】:

我想用 PHP Curl 解析网页中的 HTML 代码,但是有一个错误消息,我无法在没有 JavaScript 的情况下访问该站点。

我可以使用 PHP Curl 启用 JavaScript 吗?

【问题讨论】:

标签: php javascript curl libcurl


【解决方案1】:

没有。

这很简单 - 一个页面测试,如果您启用了 JavaScript,则通过使用 JavaScript 执行一个命令,这将删除诸如“您没有启用 JavaScript”之类的内容。

因此,如果您没有启用 JS,则错误不会消失。

如果 JS 未启用,JavaScript 可选择(甚至更有可能)将您的浏览器重定向到实际页面 - 同样,您将停留在第一页,这表示您没有启用 JS...

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

为了实现这一功能,您需要一个 JavaScript 引擎……据我所知,PHP 中没有一个功能齐全的引擎。

【讨论】:

    【解决方案2】:

    JavaScript 由浏览器执行; cURL 没有 JavaScript 解析器,因此无法执行。

    由于该网站希望某些信息告诉它启用了 javascript,因此您需要使用可以通过实际浏览器执行网页的工具来为您提供 html。

    【讨论】:

      【解决方案3】:

      虽然想法很糟糕:http://timwhitlock.info/blog/2008/05/09/full-javascript-parser-for-php/

      您可以将返回的字符串解析为 Javascript。但是,如果它使用 AJAX,就会遇到麻烦。

      读取:解析!= 运行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-27
        • 2011-08-23
        • 2014-06-07
        • 2011-03-18
        • 1970-01-01
        • 2023-03-31
        • 2010-11-23
        相关资源
        最近更新 更多