そのSelenium、ばればれですよ。

例えばですけれども、あなたがSeleniumを使ってどこかのサイトにアクセスしたとします。

from selenium import webdriver

with webdriver.Chrome() as driver:
    driver.get("http://www.google.com")
    input()

そしてその時、そのサイトの運営者はこの自動操縦のChromeを検知することができるのでしょうか?

答えはイエスです。

if (navigator.webdriver) alert("Seleniumは使わないでください");

こんなに短いコードでいとも簡単に、ブラウザの中からChromeを背後で操るSeleniumの存在を検知することができます。

画像1

それはFirefoxでもEdgeでも大差なく、あなたがSeleniumを使っているか否かといった情報は、サイトの運営者に筒抜けだと考えるべきです。

Stack Overflowで素晴らしい情報を見つけました。曰くこの手のアンチ・スクレイピングやボット検出には、それを生業にする企業がすでに長らく存在し、そしてその企業のCEOが、

Even though they can create new bots, we figured out a way to identify Selenium the a tool they’re using, so we’re blocking Selenium no matter how many times they iterate on that bot. We’re doing that now with Python and a lot of different technologies. Once we see a pattern emerge from one type of bot, then we work to reverse engineer the technology they use and identify it as malicious.

というふうに、リバースエンジニアリングの前にはSeleniumの隠匿化も無意味と化す、という旨を豪語しています。

さらに私が見てきた中で、ブラウザの自動操縦を極端に嫌うサイトでは通常、マウス座標のトラッキングも行っています。つまりサイトの運営者は、あなたのマウスの動きを見て、あなたが人間らしいかどうかチェックできるようにしているということです。

Seleniumで安易にブラウザの自動操縦をしていませんか?それ、サイトの運営者に簡単にばれるってことを心したほうが良いと思います。

「じゃぁどうすればいいの?」と疑問に思った方、そこはまた一つずつコンテンツにしていきたいと思っていますので、しばしお待ちを。

Let's きっちり納税。noteでの収益を励みに、皆さんへ有益な情報を届けます!