網絡爬蟲-繞過debugger反爬(Paused in debugger)

最近發現很多網站出現了前端反調試debugger來反爬,防止數據被抓取,實際上是很簡單的原理,其實也就是js搞的鬼,看來作爲一名合格的爬蟲工程師,在js的道路上也會越走越遠–!廢話不多說,看圖→

在這裏插入圖片描述

Paused in debugger, 是不是看着很熟悉,接下來就是如何solve它。

首先我們需要找到call stack裏是什麼阻斷了我們,比如七麥網,我們可以看到,e參數以及t參數,我們雙擊進去,可以看到以下js代碼。

function t() {
  try {
    var a=["r","e","g","g","u","b","e","d"].reverse().join("");
    !function e(n) {
      (1 !== ("" + n / n).length || 0 === n) && function() {}
      .constructor(a)(),
      e(++n)
    }(0)
  } catch (a) {
    setTimeout(t, 500)
  }
}

這段代碼的意思就是每0.5S就阻斷你一次,要怎麼解決很簡單,把這個函數重構即可,以七麥網爲例,在控制檯輸入:

t = function(){}

在這裏插入圖片描述

然後關閉debug再次打開,就可以放心調試了。

注意! 有些網站的反調試不止是這種函數,也有可能是匿名函數,但是目前來說我還沒遇見過,如果有童鞋遇見了且無法解決,可以在我博客下方留言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章