PuppeteerでできるBot検知回避方法

IQZeus

やりかた

意外と調べても出てこなかった気がするのでお役に立てるかなと簡単にできるbotだとばれにくくなる方法をご紹介いたします!

簡単にできるとは言ってもサイトによっては実際はプロキシサーバーを介すとかの手段はとらないと効果は薄かったりしますが以下のコードを記載するだけでそれなりに効果はあります。

    await page.evaluateOnNewDocument(() => {
        Object.defineProperty(navigator, 'webdriver', ()=>{});
        delete navigator.__proto__.webdriver; 
        //headerからwebdriverの表記を消します。botだとばれにくくなる。
    });

このコードをpageを作成した後くらいに張ればいい感じに仕事をしてくれます!

(なにかわからないことがあればお答えしますのでコメント欄までお願いします。)

実はpuppeteerで使うブラウザのヘッダ情報にはwebdriverからのアクセスだと示す情報が一緒に乗ってしまっているんですよね。。。

なのでそれを消せばそれを検知してbot判定しているサイトからは逃れられるというわけです!

ただこれで何回もアクセスできるとは言ってもサーバーに負荷を与えるような処理は控えてくださいね!

それではまた思いついたら載せます!

コメント

タイトルとURLをコピーしました