frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Detecting scraper bots through scroll behaviour

https://niki.cat/detecting-scraper-bots-through-scroll-behaviour
5•theanonymousone•28m ago

Comments

ventana•6m ago
That's great!

I was experimenting with Google Ads traffic to one of the websites I cared about, and even just looking at the existence of mouse move and scroll events, let alone the patterns, made me understand how many bots, or users who just (mis)clicked the ad and never did any action on my website, were counted as paid clicks in Google Ads. Analyzing for patterns like in this article would've made even more sense.

superkuh•5m ago
This is another one of those horse-blinders style arguments that considers only for-profit/institutional/etc contexts and so doesn't realize their very method of measuring something through javascript program execution is biased or that it's creepy.

I'm a human, I don't execute javascript programs and by default my browser does not either. Anyone using this will label me a bot.

bryanrasmussen•5m ago
well it's funny but when I was writing my bot targeting a particular platform I did a lot of this stuff, because I was paranoid and didn't want to get blocked, so things I did:

detect all element in currently loaded page I want to do things with. element I want to click. scroll to element I want to click. random viewport scrolling action, go slightly over viewport, scroll back up, determine mouth position where I will click - x, y center of clickable item, determined x,y of bounding box of clickable item, choose some point within bounding box where I can click with some randomness for getting to center because obviously humans don't get the exact center every time do they. set random mouse move speed. mouse choppiness function (determine a number of x.y coordinates on the way towards the x.y you will actually be clicking move towards those each in turn with randomness of mouse speed, so that nobody can say huh, this mouse is moving towards the place it will click with an unnaturally direct and unnaturally smooth movement.) Get to where I will click. wait random time to click. click.

If I do not continually get new elements I want to click based on my criteria just by this method now I need to scroll to see if I can detect new.

random number of times I will scroll. random scroll speed. random scroll distance.

start scroll. hit scroll distance stop. random up down scroll.

My automation goal was not to make my bot able to do the work of hundreds of people. It was to do the work of a few people.

However I eventually gave it up since the target platform was continually deciding I, as a human, was somehow behaving as a bot, it followed that it was somewhat irrational to try to make a bot that behaved as close to a human as possible.

(note there was all sorts of other erratic behavior boiled into my bot, for example how it wrote text, since it had to do keypresses, and randomized typing speeds, and making errors, and back spacing to fix errors)

on edit: before you start telling me about how it's not randomized enough or whatever, I am of course giving a curtailed high level description of the kinds of noise I added in to my bot behavior, because I just really wanted to spin up a bot that could spend a few hours doing stupid work while I did other things, and then write up a report and then later I could come in and do some more clever things.

Show HN: AI tools with real pricing, submitted in 30 seconds

https://worthtotry.com
1•not_wowinter13•3m ago•0 comments

Cryptomator

https://cryptomator.org
1•Cider9986•3m ago•0 comments

Ozone: The Fault Is Not in Our Trees, but in Ourselves

https://www.science.org/content/blog-post/fault-not-our-trees-ourselves
1•gumby•4m ago•0 comments

New visualizer: U.S. state obesity trends

https://www.exfatloss.com/p/new-visualizer-us-state-obesity-trends
1•paulpauper•4m ago•0 comments

You Are Not Fat Enough for Retatrutide

https://lukasxp.substack.com/p/you-are-not-fat-enough-for-retatrutide
1•paulpauper•5m ago•0 comments

AI #182: Pause for Reflection

https://thezvi.substack.com/p/ai-182-pause-for-reflection
1•paulpauper•6m ago•0 comments

We Taught Sqlc to Invalidate Our Caches

https://blog.exe.dev/we-taught-sqlc-to-invalidate-our-caches
1•bryanmikaelian•6m ago•0 comments

Moon→Leo Transfer Sims for a Lunar Mass Driver, Terrain Analysis, Power Sizing

https://www.youtube.com/watch?v=3I4P_6G3PFY
1•db48x•6m ago•0 comments

BTP v2.2 – An open, offline cryptographic trust protocol for AI agents

https://github.com/ivegotahunnitonit/bartholomew
1•itsub_sa•7m ago•0 comments

Show HN: PNGine, Declarative WebGPU in S-expressions that match the spec 1:1

https://hugodaniel.com/pages/pngine/
1•hugodan•10m ago•0 comments

Data Science Weekly – Issue 665

https://datascienceweekly.substack.com/p/data-science-weekly-issue-665
1•sebg•13m ago•0 comments

Canadian premier says Trump is a 'bad person' as Canada weighs concessions

https://apnews.com/article/canada-quebec-trump-tariffs-75d3f24bb11178d8c9bb28b144e1dcf0
2•petethomas•17m ago•0 comments

OpenCyvis: An open-source AI phone agent that runs your own LLM

https://github.com/opencyvis/opencyvis-phone
1•Alephinitesimal•18m ago•0 comments

Zalgo: The Good, the Bad, and the Ugly

https://unsung.aresluna.org/zalgo-the-good-the-bad-and-the-very-very-ugly/
1•sohkamyung•19m ago•0 comments

LastSpot: A 100-product leaderboard where bids decay 5% daily

https://lastspot.lol
1•insomnie•19m ago•0 comments

TFreax, a new 3k shootem up game for the Vic20, c64, Atari 400, etc. Open source

https://orac81.itch.io/tfreax
2•orac81•19m ago•0 comments

Intelligent AI Delegation

https://arxiv.org/abs/2602.11865
1•gmays•22m ago•0 comments

Exploring the Far Side of the Moon: A Visual History

https://invertingvision.com/2026/04/06/exploring-the-far-side-of-the-moon-a-visual-history/
1•bryanrasmussen•24m ago•0 comments

Detecting scraper bots through scroll behaviour

https://niki.cat/detecting-scraper-bots-through-scroll-behaviour
5•theanonymousone•28m ago•3 comments

US power grid at risk of 18-month blackout; 1 city now in dark for over a week

https://www.syracuse.com/us-news/2026/08/us-power-grid-at-risk-of-18-month-blackout-1-city-now-in...
4•newsomix9xl•29m ago•1 comments

Frank Beard, ZZ Top drummer for more than five decades, dies at 77

https://www.theguardian.com/music/2026/aug/20/frank-beard-obituary
2•bookofjoe•33m ago•1 comments

OpenAI Unveils Zero Data Retention for Frontier Models

https://techstrong.ai/articles/openai-unveils-zero-data-retention-for-frontier-models-previews-pr...
1•CrankyBear•34m ago•0 comments

Slack Datamine

https://github.com/3kh0/slack-datamine
1•sadeshmukh•35m ago•0 comments

The Jagged GTM Frontier

https://freshcontext.ai/research/jagged-gtm-frontier
2•bcx•36m ago•0 comments

How to Not Burnout

https://alikhil.dev/posts/how-to-not-burnout/
1•alikhil•37m ago•0 comments

Dissecting the "Beginning Analysis" of Noncitizen Voting

https://mdi.georgetown.edu/response-to-voter-record-analysis/
2•Anon84•38m ago•0 comments

We knew game hardware spending would drop, July's percentages are still shocking

https://www.destructoid.com/gaming-hardware-decline-sales/
1•evo_9•38m ago•0 comments

Show HN: Lexicon – Vocabulary That Sticks

https://lexiconapp.pythonanywhere.com/
1•chistev•42m ago•1 comments

Remove Cruft from Amazon

https://shop.knockoff.co
2•sanj•44m ago•0 comments

Show HN: Hackerznews – Yet Another HN Client

https://hackerznews.vercel.app
1•raphael_l•50m ago•0 comments