【问题标题】:How can I programmatically interact with a website that uses an AJAX JBoss RichTree component?如何以编程方式与使用 AJAX JBoss RichTree 组件的网站交互?
【发布时间】:2013-05-21 03:48:39
【问题描述】:

我正在编写一个 python 脚本来对公共网站进行一些屏幕抓取。这一切都很好,直到我想与一个 AJAX 实现的树控件交互。显然,有大量的 javascript 控制 AJAX 请求。看起来树控件是一个 JBoss RichFaces RichTree 组件。

我应该如何以编程方式与此组件进行交互?

  • 有什么我应该知道的技巧吗?
  • 我应该尝试实现 RichFaces AJAX 的子集吗?
  • 或者将一些代码封装在现有的网络浏览器周围会更好吗?如果是这样,是否有 python 库可以帮助解决这个问题?

【问题讨论】:

    标签: python ajax jboss richfaces screen-scraping


    【解决方案1】:

    PhantomJS 可能是最有趣的项目,可以让您在无头环境中使用不错的 API 进行 javascript 操作。虽然它本身不再支持 python,但有与之交互的选项。查看讨论 here 了解更多信息。

    还有 vanilla webkit(由 Qt 和 PyQT 包装)。查看示例here

    希望有帮助:)

    【讨论】:

    • 这是我一直在寻找的那种库,谢谢!它看起来很简单好用,所以我可能会扔掉我的 python 代码并用 javascript 重写它。
    【解决方案2】:

    您需要从客户端向服务器发出 AJAX 调用并解释数据。与以任何方式抓取 HTML 相比,解释 AJAX 数据更容易且不易出错。

    虽然如果没有记录 AJAX API 可能会有点棘手。像wireshark这样的网络嗅探器工具在那里会很有帮助,现在你的浏览器也可能有有用的插件来做同样的事情。多年来我不需要这样做。 :-)

    【讨论】:

    • 我希望绕过 AJAX API 的棘手问题,因为它似乎有很多长的十六进制字符串 :)
    • @fmark:嗯,这并不一定很难弄清楚。 :-)
    猜你喜欢
    • 2012-08-04
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多