标签:浏览器 chromium 自动化 阅读 javascript
“页面智能拼接”指的是通过启发式查询DOM树,判断出“下一页”链接,取出其href属性。Chromium的官方插件DOM Distiller完成类似的工作,主要目的就是为了将多页点击流程变成单页的Ajax连续阅读体验。
问题是,现在有些网站为了阻止浏览器客户端这么做,将href属性设置为"#"(或javascript:void()),然后在其onclick事件里绑定一个JS handler,动态生成下一页的URL。
这种情况下,如何还能完成客户端自动化地取得下一页的URL呢?
如果能够获得onclick handler的JS源代码,则可以实现一个JavaScript源代码解释器,JS解释器实际上早就有人实现过了(需要虚拟一个假的全局window对象、执行上下文、代理DOM树的访问,以及最后截获window.open请求或location赋值语句)。
关键问题是,无法获得onclick handler的JS源代码!你只能得到一个JS Function对象。不过Function对象的prototype.ToString好像是可以得到源代码的?(待测试验证)
这个方法则需要在内核里做修改。实现难度可能简单一点:
版权声明:本文为博主原创文章,未经博主允许不得转载。
浏览器客户端智能自动化:如何取得页面中JavaScript运行时动态生成的URL?
标签:浏览器 chromium 自动化 阅读 javascript
原文地址:http://blog.csdn.net/cteng/article/details/46693091