What Happened
August 20, 2026 Reading time: 4 minutes key "series-homelab"), ordered oldest-first. --> Ever since I first read "Burstiness and Memory in Complex Systems" by Kwang-Il Goh, I have been obsessed formulas showcased . Burstiness (B), -as-important counterpart Memory (M), let us understand the dynamics of event-based systems.
analyse the behaviour of sent emails, heartbeats events happened is known. This allows us to clearly establish which patterns are human-'t based on a dataset of already classified data. We know humans a bursty manner ( answer is not uniform) while simple bots respond possible, different B and M coefficients.
In previous personal research, I values to differentiate between sessions timings of their requests, which usually worked, nonetheless, this approach identified sessions browser that loaded , allowing more advanced bots like ClaudeBot to appear a headless browser. It essentially distinguished between crafted requests versus requests sent from a real browser, instead .
I noticed a distinctly human behaviour that I believe cannot be easily imitated by bots, scrolling. When I am scrolling a page looking for information using the scroll wheel, I usually don't scroll down linearly until I find what I am looking for, instead, I a bursty pattern. For example, that pattern might more closely resemble time series a or e rather than c.
Why It Matters
I think most scraping bot developers still haven't honed their scrolling pattern, so I decided burstiness and memory applied - scroll events were variables predictive power in a machine learning model, distinguish between humans and bots.
, I used the dataset provided "FP-Agent: Fingerprinting AI Browsing Agents" , et al., authors explained the process created a machine learning distinguish between different AI browsing agents in a controlled environment (a website made specifically for the purpose). They recorded data of different agents and humans navigating through their website. results, but I don't effective in a real-world setting when applied to different websites, which involves lots of variation. Nevertheless, dataset available for download on OSF.io.
I calculated the burstiness and memory values for the JavaScript "scroll" events (one burstiness and memory visited). results:
We can observe distribution is clearly different agents', presenting a higher Burstiness coefficient and almost no Memory; sometimes resembles humans is ChatGPT Agent. promising, but to further values have predictive value I trained a LightGBM (decision tree gradient boosting) model to classify each single-page interaction.
What Comes Next
features available, B and M, predict which agent performed the interactions. The result was an accuracy of 73.4%, . As expected, the model mainly confused Humans and ChatGPT Agent, most likely feature count or a small dataset (~150 data points ), features distinguish them further.
Scroll behaviour a relevant distinguishing bots from humans, and Burstiness and Memory have proven to have predictive power in a controlled environment. This approach will obviously not be effective on websites that don't require scrolling; , blogging or information sites like Wikipedia advantage of this method.
accurate enough, though, if combined with more features extracted from other actions movement or typing, I believe it is possible to create a general model capable of protecting websites from scraper bots.
I will keep posting my research in this website. Next up, I will be taking a movement patterns.
Explore more: Software & AI Guide