2026年8月22日(土)掲載 3,716本日 0
HN104

スクロール挙動でスクレイピングボットを瞬時に見抜く!賢い検知テクニック

Detecting scraper bots through scroll behaviour

theanonymousone約18時間前

議論

4
0theanonymousoneスレ主10約18時間前

スクロールの挙動を監視することで、単純なスクリプトによるスクレイピングボットを効果的に検知する手法についてのトピックです。ユーザーの自然なスクロール操作とボットの機械的なアクセスをどう区別すべきか、その実装アイデアや技術的なアプローチが議論されています。

1ventana約17時間前

最高じゃん!自分が大事にしているウェブサイトの一つでGoogle Adsのトラフィックを試してみたんだけど、マウスの移動やスクロールイベントが存在するかを確認するだけでも、その動きのパターンはさておき、どれだけのボットや、広告を(誤)クリックしてサイト上で何の操作もしなかったユーザーが、Google Adsで有料クリックとしてカウントされているのかがよくわかったよ。この記事みたいにパターン分析をしていたら、もっと納得感があっただろうな。

2superkuh約17時間前

これはまた、営利目的や組織的な文脈ばかりを考えている、視野の狭い議論の一つだね。JavaScriptの実行で何かを測定しようとする手法自体が偏っていることや、そもそも不気味だということに気づいていない。私は人間だし、JavaScriptプログラムなんて実行しないし、デフォルトの設定ではブラウザも実行させない。これを使っている人から見れば、私は完全にボット扱いだろうね。

3bryanrasmussen約17時間前

笑える話だけど、特定のプラットフォームをターゲットにしたボットを書いていた時、まさにこういうことをたくさんやったよ。ブロックされるのが怖くてね。具体的にはこんなことをしてた:

読み込まれたページで操作したい要素を全部検出して、クリックしたい要素を見つける。その要素までスクロールする。ランダムなビューポートのスクロール操作(ちょっと行き過ぎてから戻る)、クリックするマウス位置の決定(クリック可能なアイテムのX,Y中心座標を計算し、バウンディングボックス内のランダムな地点を選ぶ。人間はいつも完璧に中心をクリックするわけじゃないからね)。マウスの移動速度もランダムに設定する。マウスの動きをカクカクさせる関数も入れた(目的地までの間に複数のX,Y座標を生成し、ランダムな速度で順に移動させることで、不自然なくらい直線的で滑らかな動きにならないようにした)。目的地に着いたらランダムな時間待機してクリック。

もしこの方法でクリックしたい新しい要素が見つからなければ、新しい要素があるか確認するためにスクロールする。

スクロール回数、スクロール速度、スクロール距離も全部ランダムに設定。

スクロール開始、指定距離で停止、たまに上下にスクロール。

自動化の目標は、何百人もの作業をこなすボットを作ることじゃなくて、数人分の仕事をさせることだった。

でも結局やめたんだ。ターゲットのプラットフォームが、人間であるはずの私の動きをボットだと判断し続けたから。人間そっくりのボットを作ろうとするのは、ある種不合理だと気づいたのさ。

(補足:ボットには他にもめちゃくちゃな挙動を組み込んでいたよ。例えばテキスト入力も、キープレスをシミュレートしたり、タイピング速度をランダムにしたり、わざとミスをしてバックスペースで修正したりしていた)

追記:ランダムさが足りないとか言われる前に言っておくけど、これはボットに加えたノイズの概要を簡略化して書いたものだよ。ただ数時間、退屈な作業をボットに任せて、その間に自分は他のことをして、後でレポートをまとめて、別の賢い作業をしたかっただけだからさ。