在Python中解析JavaScript web应用程序的选项

在Python中解析JavaScript web应用程序的选项,javascript,python,Javascript,Python,必须编写一个Python应用程序来通信,并从一个受密码保护、支持JavaScript的web应用程序中获取一些数据 不幸的是,webapp需要运行JavaScript,如果禁用JavaScript,它将拒绝工作。因此,尝试获取数据时,“urllib2”和“requests”不起作用 在这一点上我有什么选择?如果我通过诸如Firebug之类的工具获取HTTP流量,并尝试通过某种Python方法重新播放该流量,这会起作用吗?我只需要脚本执行以下操作: 登录网站 更改下拉项 抓取一行文本并注销 您最好

必须编写一个Python应用程序来通信,并从一个受密码保护、支持JavaScript的web应用程序中获取一些数据

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

在这一点上我有什么选择?如果我通过诸如Firebug之类的工具获取HTTP流量,并尝试通过某种Python方法重新播放该流量,这会起作用吗?我只需要脚本执行以下操作:

  • 登录网站
  • 更改下拉项
  • 抓取一行文本并注销

  • 您最好的选择是运行一个无头浏览器,就像它理解javascript一样。您必须用javascript编写代码,然后才能做任何您想做的事情

    它对DOM处理、CSS选择器以及当然还有JavaScript提供了快速的本地支持


    您最好的选择是运行一个无头浏览器,就像它理解javascript一样。您必须用javascript编写代码,然后才能做任何您想做的事情

    它对DOM处理、CSS选择器以及当然还有JavaScript提供了快速的本地支持


    嗯,是的。服务器无法知道请求是由JavaScript还是其他代码发出的。您必须对webapp发出的请求进行反向工程,并用Python重新生成它们。Firebug将是一个很好的起点,也许也可以尝试Wireshark。这个相关的工具应该对你们的问题有用。真棒:)谢谢大家!如果你能给我指一篇关于如何重播http数据包的好文章。。。那太棒了:()()()))会让rtfmingWell保持健康,是的。服务器无法知道请求是由JavaScript还是其他代码发出的。您必须对webapp发出的请求进行反向工程,并用Python重新生成它们。Firebug将是一个很好的起点,也许也可以尝试Wireshark。这个相关的工具应该对你们的问题有用。真棒:)谢谢大家!如果你能给我指一篇关于如何重播http数据包的好文章。。。那太棒了:()()())()))会让RTFMINGA保持绝对稳定!非常感谢。我也刚开始学习javascript!这将变成一个超级有趣的项目:)@RanRag。。。在这里碰壁。。我可以让phantomjs执行脚本。。。但实际上并没有登录到该网站并拉下一些数据…我发现了这个:。。。但它仍然没有将我登录到我的web应用程序。请尝试使用firefox的
    live http header
    插件,查看手动登录时发出的所有请求。可能是您的网站要求用户发送cookie。绝对!非常感谢。我也刚开始学习javascript!这将变成一个超级有趣的项目:)@RanRag。。。在这里碰壁。。我可以让phantomjs执行脚本。。。但实际上并没有登录到该网站并拉下一些数据…我发现了这个:。。。但它仍然没有将我登录到我的web应用程序。请尝试使用firefox的
    live http header
    插件,查看手动登录时发出的所有请求。可能是您的网站要求用户发送cookie。