playwright-stealthが開発停止なのでPython版を自作してPyPIに公開した話 | TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
既存のplaywright-stealthがメンテナンス停止しており、現代のボット検知で主流となっているCanvas、WebGL、AudioContext等のフィンガープリントを用いた高度な検知手法に対応できていない。これにより、厳格な検知を行うECサイトや求人サイト等での自動化が困難になっている。
// Approach
navigator.webdriverのマスキングに加え、Canvas描画時のノイズ注入、WebGL/AudioContext/Font情報のスプーフィング、さらにUAやViewport、Locale、Timezoneのローテーション機能を実装。ブラウザのAPIレベルでプロパティを書き換え、人間が操作している環境を擬似的に構築する。
// Result
bot.sannysoft.comやcreepjs等の高度な検知テストサイトにおいて、従来のライブラリでは検知されていた項目を回避可能とした。MITライセンスでPyPIおよびGitHubにて公開されており、コミュニティによる継続的なメンテナンスが期待される。
Senior Engineer Insight
> ボット検知技術の高度化に対し、従来のプロパティ上書きだけでは不十分であるという実態を的確に捉えた実装である。特にCanvasやAudioへのノイズ注入は、検知側の統計的解析を撹乱する上で実戦的なアプローチだ。ただし、これらはあくまで「いたちごっこ」の範疇であり、検知側が機械学習を用いた振る舞い検知へシフトした場合、本ライブラリだけでは限界がある。運用フェーズでは、検知回避率の継続的なモニタリングと、プロファイルローテーションの戦略的な設計が不可欠となるだろう。