【问题标题】:Get HTML code after javascript execution using CURL PHP使用 CURL PHP 执行 javascript 后获取 HTML 代码
【发布时间】:2012-10-18 19:45:35
【问题描述】:

我想使用Curl(PHP)获取由javascript生成的网页的html源代码 我尝试了 curl 但我只得到一个 javascript 代码:(

我可以使用 ruby​​ 来解决我的问题吗?!

【问题讨论】:

    标签: php javascript html curl


    【解决方案1】:

    这可以通过像 phantom js 这样的无头浏览器活动来完成,这是一种创建自己的逻辑的好方法,然后在控制台中为 php 获取结果数组,你可以在这里尝试活动 https://github.com/jonnnnyw/php-phantomjshttps://github.com/ariya/phantomjs

    【讨论】:

      【解决方案2】:

      这是一个棘手的问题,因为必须运行 JavaScript 才能获得正确的代码。我想说的是在本地下载所有代码,然后在代码中添加一个ajax调用,这样它就可以在所有js运行后将源ajax返回给你。然后在浏览器中运行代码。

      如果您需要多次执行此操作,您可以将这些需要加载到数据库中的页面排队并使用 php.ini 加载所有页面。然后,一旦 js 将代码 ajax 发送回服务器,它就可以刷新并将下一页从队列中拉出。

      如果您需要我澄清任何事情,请告诉我。

      【讨论】:

      • 感谢您的解释
      • 我可以使用 ruby​​ 或其他东西吗?!!
      • 使用哪种服务器端语言并不是一个真正的问题。它不起作用的原因是因为 JavaScript 是一种客户端语言,所以它必须以一种或另一种方式在客户端运行,然后才能给你正确的答案。您可以考虑使用服务器端 javascript。
      【解决方案3】:

      只需查看任何网络检查器工具(在 chrome 中只需 ctrl+shift+i)。在这里,您可以看到 javascript 在反映的页面上所做的更改。我不认为 curl 或任何类似 curl 的工具可以做到这一点。

      【讨论】:

      • 我可以使用其他语言或工具,例如 RUBY 吗?
      【解决方案4】:

      浏览器执行 javascript 以生成 HTML。如果您使用 CURL 发出请求,它只会向您显示实际的 HTML 内容。在收到响应正文后,您需要一个 Javascript 引擎来处理 Javascript。

      【讨论】:

      • 看看这个问题,它可能会对你有所帮助。但是我很想知道你为什么要这样做,它很可能不是解决问题的正确方法:) stackoverflow.com/questions/10514604/…
      • 10x 但是在收到响应正文后如何处理 javascript?
      • 假设网站构建良好,不处理 javascript 就可以了。例如。谷歌机器人索引网络但不处理 javascript。此外,您应该确保您被允许使用该内容..
      • 感谢您的解释:D
      猜你喜欢
      • 2012-05-17
      • 2011-04-05
      • 2017-05-09
      • 2012-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多