
こんな悩みを解決できる記事を書きました!
僕は現役フリーランスエンジニア(歴10年)で、資格は13個保有しています。
「Seleniumのスクレイピング対策を無効化する方法を知りたい」とお悩みではありませんか?
Seleniumでスクレイピングするとサイトによってはアクセスできないことがあります。



スクレイピング対策しているサイトも多いですからね。
Seleniumを実行する際にオプションを追加すれば回避できる可能性が上がります。
ということで、本記事ではSeleniumでスクレイピング対策を無効化する方法を解説します。





すぐ読み終わるので、ぜひ最後まで読んでくださいませ。
【Python】Seleniumのスクレイピング対策を無効化する方法
Seleniumの動作は特定のJavaScriptなどで検出できるため、アクセスを制御されてしまう可能性があります。
アクセス制御を回避するには、Chromeの起動時に--disable-blink-features=AutomationControlled
オプションを追加すると効果的です。
–disable-blink-features=AutomationControlledの設定方法
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--disable-blink-features=AutomationControlled")
browser = webdriver.Chrome(options=options)
上記のコードで、Seleniumの自動操作が検出されにくくなります。
なぜ有効なのか?
Chromeには「AutomationControlled」という機能があり、「AutomationControlled」が有効だとSeleniumの動作がサイト側に検知されやすくなります。
--disable-blink-features
を追加することで、Seleniumの動作を手動操作と同じように見せかけることができます。
ただし、サイトによっては他の対策も講じている可能性があるため、ヘッドレスモードの解除やUser-Agentの変更も併用するとより効果的です。



一つだけ対策すればいいというわけでもないのでスクレイピングは難しい…
よくある質問
--disable-blink-features=AutomationControlled
だけで完全にバレなくなりますか?
完全に検出を防ぐことはできません。
サイト側は追加の対策を行っている場合があるため、ヘッドレスモードを使わない、User-Agentを変更するなど、他の対策も組み合わせるとより効果的です。
他に試すべき設定はありますか?
例えば以下のような対策を併用すると、Seleniumの動作をより人間の操作に近づけることができます。
- User-Agentを実際のブラウザのものに変更する。
- JavaScriptの実行を工夫し、navigatorオブジェクトを改変する。
WebDriver
フラグを削除する(driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
)。
まとめ
今回は、Seleniumでスクレイピング対策を無効化する方法について解説しました。
以下が本記事のまとめになります。
- おすすめ本
Pythonの勉強なら「独習Python



最後までお読みいただき、ありがとうございました!
- クソおすすめ本



海外のエンジニアがどういった思考で働いているかが理解できます。
海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。