【问题标题】:Options to parse a JavaScript web app in Python在 Python 中解析 JavaScript Web 应用程序的选项
【发布时间】:2012-01-19 15:33:36
【问题描述】:

必须编写一个 Python 应用程序来与受密码保护、启用 JavaScript 的网络应用程序进行通信和获取一些数据。

不幸的是,webapp 需要 JavaScript 才能运行,如果 JavaScript 被禁用,它就会拒绝工作。因此,“urllib2”和“requests”在尝试获取数据时不起作用。

此时我有哪些选择?如果我通过诸如 Firebug 之类的工具获取 HTTP 流量,并尝试通过某种 Python 方法重新播放此流量,这可行吗?我需要为脚本做的就是:

  1. 登录网站
  2. 更改下拉项
  3. 获取单行文本并注销

【问题讨论】:

  • 嗯,是的。服务器无法知道请求是由 JavaScript 还是由其他代码发出的。您必须对 webapp 发出的请求进行逆向工程,并在 Python 中重现它们。 Firebug 将是一个很好的起点,也许也可以尝试 Wireshark。
  • 这个相关的question应该对你的问题有用。
  • 太棒了 :) 谢谢大家!如果你能指点我一篇关于如何重放 http 数据包的好文章……那就太棒了:))))) 将继续 rtfming

标签: javascript python


【解决方案1】:

最好的办法是运行像PyPhantomJS 这样理解javascript 的无头浏览器。您必须用 javascript 编写代码,然后才能为所欲为。

它对 DOM 处理、CSS 选择器,当然还有 JavaScript 有快速和原生的支持。

【讨论】:

  • 绝对!谢谢!我也刚开始学习javascript!这正在变成一个超级有趣的项目:)
  • @RanRag...在这里碰壁...我可以让 phantomjs 执行脚本...但实际上并不能登录网站并提取一些数据...
  • 我发现了这个:code.google.com/p/phantomjs/issues/…... 但它仍然没有让我登录到我的网络应用程序
  • 尝试使用 firefox 的 live http header 插件,看看当你手动尝试登录时所有的请求是什么。
  • 可能是您的网站需要用户发送 cookie。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-25
  • 1970-01-01
  • 2018-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-07
相关资源
最近更新 更多