解析和交互混淆的JavaScript
我正在尝试与一个使用了复杂的JavaScript来隐藏普通HTML元素的HTML 4.0网站进行交互。我想做的是填写一个表单并读取返回的结果,但这比我想象的要难得多。
当我使用Firebug查看页面时,它给我提供了去掉混淆的源代码,这样我就可以用它来完成我想做的事情。Firebug的输出显示了网站的所有常规元素,比如标签等,而这些在原始源代码中是隐藏的。
我用Python写了我应用程序的其他部分,使用mechanize与其他网络服务进行交互,所以如果可以的话,我更希望使用现有的Python模块来完成这项工作。问题不仅在于如何以mechanize能理解的方式读取源代码,还在于如何生成服务器能够解析的响应。即使HTML代码被混淆,我还能使用常规的mechanize控件吗?
在项目开始时,我使用了pywebkitgtk而不是mechanize,但因为它在Python中的实现不太好,所以放弃了。大部分功能都缺失。也许启动一个webkit浏览器,从中读取HTML,然后与mechanize结合使用,这样的方法会更合理吗?
任何帮助都将非常感激,我真的很困扰。谢谢!
编辑:我尝试从mechanize获取HTML并用pywebkitgtk打开,使用load_html_string,然后以这种方式评估HTML。不幸的是,由于我尝试解析的文档动态加载更多资源,这个脚本就停止了,等待资源加载。请注意,我不能使用webkit加载文档本身,因为我使用mechanize的CookieJar功能先进行登录。
我还尝试从webkit获取HTML,但出于某种原因,它只输出了混淆的JavaScript,而网站显示得很好。如果webkit能够像Firebug那样输出去混淆的JavaScript,我就可以用它来根据干净的代码形成请求。
1 个回答
与其费力去处理整个页面,不如直接用Firebug这个工具来找出表单字段的名字,然后用httplib或者其他工具发送一个包含必要字段和设置的请求。
如果是通过ajax发送的请求,你也可以在Firebug里看到发送到服务器的值。