【问题标题】:Perl see the full content in responsePerl 查看完整的响应内容
【发布时间】:2011-02-14 23:23:45
【问题描述】:

我需要从 html 页面获取数据,所以我使用 LWP 来获取页面内容。 我得到的响应是部分的,而不是页面的完整来源。

...

<div style="display:none" id="QUERY" query=""></div>
<div style="display:none" id="COLL" idcoll=""></div>
<div style="display:none" id="BROWSE" field=""></div>

<div id="center"></div>
<div id="loading"></div>

...

当使用网络调试器(FIRE BUG)时,我可以看到以下隐藏内容:

<div id="center"></div>
<div id="loading"></div>

如何使用 Perl 获取隐藏数据?

这三天让我心烦意乱! 先谢谢了。

【问题讨论】:

    标签: perl


    【解决方案1】:

    假设它是一个 JS 正在运行...我怎么能 看内容?

    您可以使用WWW::Mechanize::Firefox。它似乎支持Javascript。

    【讨论】:

    • 它支持 Javascript,如果你在 Firefox 中启用了 Javascript。
    【解决方案2】:

    如果内容确实是使用 Javascript 添加的,您也许可以将 WWW::Scripter 与 Javascript 或 Ajax 插件一起使用。

    【讨论】:

      【解决方案3】:

      如果 LWP 获取的 HTML 源代码中不存在它,则会以其他方式添加它。可能有 Javascript 正在运行,或者由于 cookie 或用户代理字符串,网络服务器会为您和 LWP 提供不同的页面。

      【讨论】:

      • 谢谢,但假设它是一个 JS 正在运行...我如何才能看到内容?
      • @GrinGo:它完全依赖于 Javascript。我们需要更多的代码来说明任何事情。也许它会即时计算某些东西,也许它会发出 AJAX 请求。
      • @GrinGo:调查页面的完整 HTML 源代码,搜索脚本。不过,看起来尤金有一个更简单的解决方案。
      【解决方案4】:

      安装 Firebug 或使用 Safari 开发菜单查看正在向服务器执行哪些 AJAX/XHR 请求,以及使用哪些 POST/GET 参数。然后,您可以使用 LWP 或任何其他 HTTP 客户端模块来执行此类请求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-13
        • 1970-01-01
        • 2017-05-12
        • 2011-07-30
        • 1970-01-01
        • 2020-01-27
        • 1970-01-01
        • 2015-09-24
        相关资源
        最近更新 更多