解析并与混淆的javascript交互

时间:2011-10-22 09:25:26

标签: python screen-scraping mechanize web-scraping deobfuscation

我正在尝试与HTML 4.0网站进行交互,该网站使用严重混淆的javascript来隐藏常规HTML元素。我想要做的是填写表格并阅读返回的结果,这比预期更难做到。

当我使用Firebug阅读页面时,它为我提供了反混淆的源代码,然后我可以使用它来完成我想要完成的任务。 Firebug输出显示了网站的所有常规元素,例如-tags等,它们隐藏在原始源中。

我已经在Python中编写了我的应用程序的其余部分,使用mechanize与其他Web服务进行交互,所以如果可能的话,我宁愿使用现有的Python模块来执行此操作。问题不仅在于如何以机械化可以理解的方式读取源代码,还在于如何生成Web服务器可以解释的响应。我可以使用常规的机械化控件,即使html代码被混淆了吗?

在我的项目开始时,我使用了pywebkitgtk而不是mechanize,但抛弃了它,因为它在python中并没有真正实现。大多数功能都缺失了。这可能是一个明智的方法,启动一个webkit浏览器,我从中读取HTML,并将其与机械化一起使用?

任何帮助都会非常感激,我真的很喜欢这里。谢谢!

编辑:我尝试转储从机械化获取的HTML并使用pywebkitgtk打开它,使用load_html_string,然后以这种方式评估html。不幸的是,由于我正在尝试解析的文档动态加载更多资源,因此脚本只是停止等待加载资源。请注意,我不能使用webkit加载文档本身,因为我使用mechanize的CookieJar函数来允许我先登录。

我也试过从webkit中转储HTML,由于某种原因,它只丢弃了混淆的javascript,同时显示网站完全没问题。如果webkit可以像Firebug那样转储反混淆的javascript,我可以使用它并根据干净的代码形成请求。

1 个答案:

答案 0 :(得分:1)

如何使用Firebug来找出表单字段的名称,然后使用httplib或其他任何方式发送带有必要字段和设置的请求,而不是尝试处理页面?

如果使用ajax发送,您应该能够确定在Firebug中发送到服务器的值。