2
3

More than 1 year has passed since last update.

【Java】Selenium+ChromeDriverで突然「あなたは人間ですか?」と聞かれた時は

Last updated at Posted at 2021-03-31

突然の死

Seleniumで作ったツールで保存したキャプチャ画像みんなCAPTCHA認証(Cloudflare)になってるやろがい!
先週までちゃんと動いてたのに何で急に認証を要求してくんの!?聞いてないわ!
そんな感じで突然それまで動いてたツールが死んでしまったので、その対処法のメモです。

なお、突然の死が発覚したキャプチャ対象はMavenのリポジトリでした。
手動では閲覧のために認証を必要としない普通のサイトです…

動作確認を行ったChrome本体とChromeDriverのバージョンは以下の通りです。

  • Google Chrome: 89.0.4389.90(Official Build) (64 bit)
  • ChromeDriver - WebDriver for Chrome:89.0.4389.23

JSoupでCAPTCHA認証による突然の死を迎えた場合は、こちらの解決法が使えるかも?
【Java】JSoupでCAPTCHA認証を回避する

ソース

ChromeDriverService service = new ChromeDriverService.Builder()
				.usingDriverExecutable(new File("chromedriver.exeのパス")))
				.usingAnyFreePort()
				.build();
service.start();

ChromeOptions options = new ChromeOptions();
options.addArguments("user-agent=Type user agent here");	// headlessでのCAPTCHA回避に必須
options.addArguments("--disable-blink-features=AutomationControlled");	// headlessじゃなければこれだけでもいけた
options.setHeadless(true);

WebDriver driver = new RemoteWebDriver(service.getUrl(), options);

急に自転車やらボートの画像を選択するよう強制されて大変びっくりしました…長女だから我慢できた。
社内ツールだからいいけど、客先に納品してたらまじで困ったことになってたね…

2022/10/11 追記
どうやら知らないうちに表示したページから遷移すると、再びCAPTCHA認証が発生するようになってました…
これはもうどうしていいかわからん。chromedriver.exeのバイナリ書き換えとか考えないといけないかも。
Pythonだとなんかいろいろライブラリも出ているんだけど、Javaは見つからないねえ…

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3