マウスとキーボードの入力を、人のような動きで
通常の自動化では、ポインターは瞬間移動し、タイピングは機械の速さです。humanize をオンにすると、Playwright のクリック、ホバー、入力、ドラッグ、スクロールはすべて、人間らしい動きの経路を通ります。曲線を描いて加減速するカーソル、自然なタイミングで 1 キーずつ打つタイピング、慣性のあるスクロール。そのすべてが trusted なネイティブイベントとして送出されます。
すべてのプランで利用可能。Pro では、座標指定クリックが記録された人間の動きに従います。
有効にして、スクリプトはそのまま
from clearcote import launch
browser = launch(fingerprint="seed-123", humanize=True, show_cursor=True)
page = browser.new_page()
page.goto("https://example.com")
page.click("text=Sign in") # eased curve, then a trusted click
page.fill("#email", "you@example.com") # focus, then key-by-key typing
page.locator("#password").type("s3cr3t") # locators are humanized too
# a held-button drag (e.g. a slider): the press stays held across the move
x0, y0, x1 = 100, 300, 400 # the handle's start, and where to release it
page.mouse.move(x0, y0); page.mouse.down()
page.mouse.move(x1, y0); page.mouse.up()
browser.close()主なポイント
曲線と修正を含む軌跡
移動は、直前のカーソル位置からわずかに弧を描くベジェ曲線をたどり、素早い主動作とそれに続く修正動作で進みます。実際に手を伸ばす動作に見られる、複数のピークを持つ速度変化です。
trusted なイベント
入力はネイティブなので、イベントはページのスクリプトから送出されるのではなく、isTrusted が設定された状態で届きます。navigator.webdriver も false のままです。
リズムのあるタイピング
キーは 1 つずつ、ランダムな間隔で入力され、単語の区切りで間を置き、ときどきタイプミスをして修正します。約 200 文字を超える値は一括で入力されるので、大量の入力がのろのろと進むことはありません。
本物のドラッグ
mouse.down() で押したボタンは移動中も押されたままなので、down・move・up はボタンを押し続けた本物のドラッグになります。locator.dragTo も人間らしい動きになります。
慣性のあるスクロール
ホイールスクロールは、実際のホイールやトラックパッドと同じように徐々に減速し、ときどき読むための間を置きます。
安全なクリック、見える動き
trusted なクリックはそれぞれ事前に確認され(表示されている、有効である、安定している、覆われていない)、条件を満たさなければネイティブのクリックにフォールバックします。showCursor を使うとポインターが描画され、動きを目で追えます。
スクリプトへの組み込み方
humanize はページレベル(click、hover、type、fill、mouse.*、keyboard.type)とロケーターレベル(click、type、fill、pressSequentially、dragTo)の両方で機能するため、既存のスクリプトにも手を加えずに適用されます。
独自のイージングを上に重ねないでください。経由点を設定し、その間の補間は humanize に任せましょう。ステップごとに自前で実装したイージングは、通常の入力では決して生じない動きの統計を生み出します。
動きの軌跡はどのビルドでも生成されます。移動、ドラッグ、スクロール、タイピングは SDK が計画し、座標指定クリック(mouse.click)はエンジン自身の軌跡をたどります。Pro ではこれらのクリックが、記録された人間の動きから導出したモーションに従います。また、ライセンスビルド(「GitHub で無料」または Pro)ではポインターの報告がより高精度になります。どのビルドでも、コードを変える必要はありません。
主な用途
振る舞いを見るページ
ポインターやキーボードがどこに行き着くかだけでなく、どう動くかを見るフロー。
ドラッグ操作
ボタンを押したままのドラッグが機能するので、スライダーやドラッグ&ドロップが手で操作したときと同じように動きます。
フォーム入力の多いワークフロー
会員登録、購入手続き、設定ページを、1 回のイベントで貼り付けるのではなく、実際にタイピングして入力します。
デモと録画
showCursor を使えば、自動操作のウォークスルーを動画で見ても分かりやすくなります。
Clearcote は、プライバシー保護、テスト、研究、合法的な自動化のために作られています。どう使うか、そしてアクセスするサイトの規約を守ることは、利用者ご自身の責任です。
対象プラン
人間らしいマウス操作、タイピング、スクロールはすべてのプランで使えます。Python と Node では起動オプション 1 つで、.NET では明示的な呼び出しで利用します。ライセンスビルド(GitHub で無料)ではポインターの報告がより高精度になり、Pro では Python と Node の座標指定クリックが、記録された人間の動きに従います。
プランを比較よくある質問
Playwright のマウスの動きを人間らしくするには?
Clearcote SDK から humanize: true(Python では humanize=True)を付けて起動します。あとは既存の page.click、fill、mouse の呼び出しが、ほかに何も変えずに人間らしい動きと入力になります。
イベントは trusted(信頼済み)ですか?
はい。ネイティブ入力として送出されるため、event.isTrusted は true になり、ページのスクリプトから合成されるものは何もありません。(showCursor はページに目に見えるオーバーレイを追加するので、デモ用にとどめてください。)
スクリプトは遅くなりますか?
少しだけ遅くなります。人がテレポートより遅いのと同じことです。長い値(約 200 文字超)は一度に入力されるので、大量のデータ入力は速いままです。
.NET SDK でも使えますか?
はい。ただし起動オプションではなく、明示的な呼び出しとして提供しています。page または locator に対する HumanClickAsync、HumanTypeAsync、HumanPressAsync、HumanScrollAsync、HumanDragToAsync、HumanSelectOptionAsync です。フラグ 1 つで済む humanize オプションは Python と Node 向けです。
独自のマウス移動ライブラリと併用できますか?
おすすめしません。humanize のイージングの上に別のライブラリのイージングを重ねると、人間も通常の入力も生み出さないような動きになります。Playwright には目標だけを渡し、経路は humanize に任せてください。
ドキュメントで詳しく
関連する機能
Playwright と Puppeteer にそのまま差し替えられる Chromium。Python、Node、.NET で import を 1 行変えるだけで、ブラウザのダウンロードと SHA-256 の検証は SDK が行います。
アカウントごとに 1 つのシード。セッションのたびに同じデバイス、次のアカウントには別のデバイス。Cookie とストレージは実行をまたいで保持されます。
browser-use、Stagehand、Crawl4AI や自作のエージェントに、エンジンレベルのアイデンティティを持つ Chromium を渡せます。Clearcote のオプトイン式ブラウザ内エージェントを、自分のモデルで動かすこともできます。
canvas、WebGL、WebGPU、オーディオ、フォント、画面、ハードウェアを C++ のエンジン内で 1 つのシードから導出し、ロケールとタイムゾーンもそれに合わせます。すべての項目が互いに整合します。
関連記事
Clearcote を試す
Playwright & Puppeteer にそのまま組み込め、TLS ハンドシェイクまで整合性を保ちます。まずはオープンソースのビルドから始められます。
GitHub があればブラウザ 1 つまで無料。カード登録は不要です。