最近在爬取某个网页时,发现了一种奇怪的现象。在打开浏览器进入所要爬取的网页之后,我们通常会选择F12即打开开发者工具来对网页进行分析。但这个页面一打开控制台就不断的debugger,无法正常观察Network。
虽然这个代码简单,但是却很有效。该匿名函数不停地打断我们,阻止我们观察网页,并且不断的产生不可回收的对象,占据我们的内存,造成内存泄漏,没过多久浏览器就会卡顿,甚至需要用任务管理器强行结束任务。
那我们如何来解决这个问题呢?
相对应的,我们也有一种简单有效的方法,那就是禁止断点,具体操作是点击Deactive breakpoints,或者Ctrl+F8 即可(下图右上角的蓝色箭头)。
禁用断点之后,这种不断debugger的反调试问题也得到了解决,我们可以正常观察Network。但是要命的是,我们如同因噎废食,断了调试这条路。禁用了断点,我们也没有办法进行断点调试了。
当然我们还有一些其他的办法可以处理debugger问题。目标就是既能阻止网页不停地debugger,也能让我们在网页上进行断点调试。
方法一
添加条件断点,具体操作如下图,在debugger的位置选择添加条件断点,并输入false。
方法二
下载这个含有debugger的js文件到本地,将debugger代码除去,使用抓包工具Fiddler替换js文件,具体的操作可以见这篇文章。
这个替换的js文件是去除debugger之后的js文件。这样我们就解决了某些网页的debugger问题。