Zidooka

PlaywrightでGoogleログインが「安全でない」エラーで失敗する問題

※ この記事の内容について、業務・開発上お困りの場合は個別に対応できます(5,000円〜)。

PlaywrightでChromiumブラウザを使ってGoogleアカウントにログインしようとすると、「ログインできませんでした」というエラーが表示されることがあります。

ログインエラーのスクリーンショット

エラーの内容

エラーメッセージには以下の内容が表示されます。

このブラウザまたはアプリは安全でない可能性があります。

これはGoogleのセキュリティシステムが、自動化ツール(PlaywrightやSeleniumなど)からのログインを検出してブロックしているためです。

なぜブロックされるのか

Googleは不正アクセス防止のため、以下の特徴を持つブラウザを自動化ツールとみなしてログインを拒否しています。

  • navigator.webdriver プロパティが true になっている
  • ブラウザのUser-Agentに自動化ツールの痕跡がある
  • Chrome DevTools Protocol(CDP)経由での操作を検出している

この制限はセキュリティ上の理由から設けられており、Googleの利用規約に抵触する可能性があります。個人のGoogleアカウントで自動ログインを試みる際は注意が必要です。

対処方法

方法1: User-Agentの変更

Playwright起動時に通常のブラウザと同じUser-Agentを設定します。

const { chromium } = require('playwright');

const browser = await chromium.launch({
  headless: false,
});

const context = await browser.newContext({
  userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
});

方法2: webdriverフラグの無効化

CDPを使って navigator.webdriver フラグを削除します。

const page = await context.newPage();

// webdriverフラグを削除
await page.addInitScript(() => {
  Object.defineProperty(navigator, 'webdriver', {
    get: () => undefined
  });
});

方法3: 既存のChromeプロファイルを使用

新規プロファイルではなく、通常使用しているChromeのプロファイルを指定します。

const browser = await chromium.launchPersistentContext(
  'C:/Users/ユーザー名/AppData/Local/Google/Chrome/User Data',
  {
    headless: false,
    args: ['--profile-directory=Default']
  }
);

この方法では既存のクッキーやログイン状態が引き継がれるため、すでにログイン済みの状態であれば問題が発生しにくくなります。

推奨されるアプローチ

Googleの自動化検出を回避する最も確実な方法は、既存のChromeプロファイルを使用するか、Google API(OAuth 2.0)を使用して認証することです。

Webスクレイピングや自動化が必要な場合は、Googleログインを回避する設計を検討してください。例えば以下のような方法があります。

  • Google API(OAuth 2.0)を使用する
  • 事前に手動でログインしたクッキーを保存・再利用する
  • Googleサービスの操作が必要な場合は、公式APIを利用する

まとめ

  • Playwright等の自動化ツールからGoogleログインはセキュリティ上ブロックされる
  • User-Agent変更やwebdriverフラグの削除で回避可能な場合もある
  • 確実な方法は既存プロファイルの使用か、Google APIの利用

技術的には回避可能ですが、Googleの利用規約を遵守し、適切な方法で自動化を行うようにしてください。

Zidooka
Zidooka

この記事の内容、60分で一緒に解決できます。

「詰まって進めない」「社内で対応できない」など、状況を聞いて最短ルートを提案します。

初回5,000円〜/事前見積りで安心。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

あわせて読みたい記事