frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Detecting scraper bots through scroll behaviour

https://niki.cat/detecting-scraper-bots-through-scroll-behaviour
8•theanonymousone•1h ago

Comments

ventana•43m 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.

conorcleary•10m ago
'Clicks' like that have bolstered stock prices for decades now.
superkuh•41m 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•41m 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.

The August 17 outage, and the work ahead

https://github.blog/news-insights/company-news/the-august-17-outage-and-the-work-ahead/
249•0xedb•4h ago•291 comments

Consumer Rights Wiki

https://consumerrights.wiki/w/Main_Page
182•gregsadetsky•5h ago•12 comments

I like 'em thick: an apology to my English teachers

https://www.experimental-history.com/p/i-like-em-thick
518•Ariarule•2d ago•245 comments

Aaron Swartz was prosecuted for scraping, while Meta does it without consequence

https://blog.curiousquail.com/im-upset-again-about-a-co-creator-of-rss-being-prosecuted-for-somet...
720•speckx•3h ago•152 comments

AliExpress runs silent WebAudio fingerprinting that breaks Bluetooth multipoint

https://blog.laserphile.com/2026/08/aliexpress-webpage-keeping-multipoint.html
846•emctech•13h ago•279 comments

I should have loved biology (2020)

https://jsomers.net/i-should-have-loved-biology/
179•tyre•6h ago•65 comments

HTML Can Do That

https://chrisburnell.com/html-can-do-that/
530•encyclopedism•1d ago•151 comments

Malicious Rust crate Arrayref runs a build-time payload

https://safedep.io/arrayref-proc-macro1-rust-build-time-malware/
369•abhisek•10h ago•351 comments

Show HN: Huzzah – a novel approach to coding with AI

https://www.danielvaughn.dev/posts/huzzah/
193•danielvaughn•4h ago•108 comments

CIA funding helped keep NeXT afloat in the 80s

https://www.wsj.com/tech/steve-jobs-apple-next-cia-161b65f9?st=NWWds1&reflink=desktopwebshare_per...
308•EwanG•23h ago•199 comments

Show HN: I trained a 125M model to autocomplete piano on-device

https://simedw.com/2026/08/20/midi-autocomplete/
478•simedw•11h ago•104 comments

SpacetimeDB: A Short Technical Review

https://strn.cat/posts/spacetime/
48•hurrrr•4h ago•9 comments

Linux 7.2

https://www.igalia.com/2026/08/19/Linux-72-Released.html
183•mariuz•8h ago•60 comments

Why aren't smart people happier? (2022)

https://www.experimental-history.com/p/why-arent-smart-people-happier
67•rafaelc•5h ago•111 comments

Detecting scraper bots through scroll behaviour

https://niki.cat/detecting-scraper-bots-through-scroll-behaviour
8•theanonymousone•1h ago•4 comments

Vomit: Clean up Claude 5's token output with a separate LLM

https://github.com/zachahn/vomit
166•Bluestein•8h ago•183 comments

How to compromise your system with a job interview

https://www.codedge.de/posts/how-to-compromise-your-system-with-a-job-interview
114•codedge•8h ago•91 comments

Tidal Cycles – Live coding music with Algorithmic patterns

https://tidalcycles.org/
45•gjvc•4h ago•8 comments

Speeding Up (Small) Ruby Hashes

https://byroot.github.io/ruby/performance/2026/08/13/speeding-up-ruby-hashes.html
12•arto•6d ago•0 comments

Sixtyfour (YC P25) Is Hiring

https://www.ycombinator.com/companies/sixtyfour/jobs/39SkSrA-software-engineering-intern
1•HPMOR•6h ago

Code as an Artifact

https://pradeeproark.com/posts/code-as-an-artifact-means-to-an-end/
18•pradeeproark•2h ago•4 comments

The Wonders of the Male Human Pelvis

https://nautil.us/the-wonders-of-the-male-human-pelvis-1283947
26•littlexsparkee•2h ago•7 comments

Anti-AI fonts are useless and harmful

https://blog.yaros.ae/anti-ai-fonts-are-useless-and-harmful/
98•speckx•8h ago•68 comments

Mojo is now open source

https://www.modular.com/blog/mojo-open-source
330•visheshdembla•2d ago•70 comments

Watching TikTok and Instagram deactivates the cognitive control network: Study

https://www.rathbiotaclan.com/tiktok-videos-deactivate-key-cognitive-brain-regions/
287•Akasci•4h ago•110 comments

Every Model Cheats

https://dreadnode.io/research/every-model-cheats-prompt-level-mitigation-of-cheating-on-offensive...
75•vga805•9h ago•56 comments

Hacking with Claude on a $27 smart watch

https://www.mikekasberg.com/blog/2026/08/19/hacking-with-claude-on-a-27-smart-watch.html
79•speckx•9h ago•44 comments

Git at any scale

https://cursor.com/blog/git-at-any-scale
259•meetpateltech•2d ago•78 comments

DiffusionGemma Technical Report

https://arxiv.org/abs/2608.00146
126•gmays•10h ago•34 comments

In Which I Lose My Mind over Embeddings (HPLM Chapter 2)

https://www.maayanroth.com/blog/posts/hundred-page-lm-book-chapter-2.html
7•evakhoury•3d ago•0 comments