Trampa honeypot
Un enlace, campo o página oculto con el que los usuarios reales nunca interactúan, usado para atrapar y marcar a los bots que sí lo hacen.
Una trampa honeypot es un elemento que un sitio coloca específicamente para atrapar bots. Es invisible o inaccesible para los usuarios humanos reales - un enlace oculto con CSS, un campo de formulario posicionado fuera de pantalla o una página enlazada solo de formas que una persona nunca seguiría. Como una persona nunca lo ve, cualquier cliente que interactúe con él está casi con certeza automatizado.
El ejemplo clásico es un enlace oculto en el HTML con estilo display:none o movido lejos de la página visible. Un humano navegando con normalidad nunca hace clic en él, pero un scraper ingenuo que sigue cada enlace del DOM sí lo hará - y en el momento en que solicita esa URL, el sitio marca la IP o la sesión como bot y la bloquea.
Los honeypots también aparecen en formularios como campos ocultos. Un usuario real los deja vacíos porque el campo es invisible; un bot que rellena formularios sin criterio completa cada campo que encuentra, incluida la trampa, delatándose. Es una técnica antispam común en formularios de comentarios y registros.
Evitar los honeypots significa hacer scraping como percibiría la página un humano: respeta la visibilidad CSS, no sigas ciegamente cada enlace ni rellenes cada campo, y renderiza la página (o razona sobre los estilos) para distinguir lo que un usuario realmente vería y tocaría. Combinado con proxies para la rotación de IP, una lógica de interacción cuidadosa te mantiene fuera de las trampas.
Bait that only a machine takes
A honeypot in this context is content placed on a page specifically to catch automation. The classic form is a link hidden with CSS, invisible to a person and perfectly visible to a parser that reads the DOM. Following it announces that you are a machine.
Form fields work the same way. A hidden input that a human never fills gets populated by naive form automation, and the submission is discarded or flagged.
Some sites go further and serve poisoned data to clients they suspect: plausible but wrong prices, fabricated listings, subtly altered numbers. This is more dangerous than a block because it corrupts your dataset while your monitoring reports success.
Avoiding the obvious traps
Most honeypots are defeated by behaving like a renderer rather than a parser:
What to check before following a link
display: none skip
visibility: hidden skip
opacity: 0 skip
height/width: 0 skip
off-screen position skip
rel="nofollow" on an odd link treat with suspicion- In a headless browser, check computed visibility rather than the raw HTML. That single change removes most CSS-hidden traps.
- Leave hidden form fields untouched. Fill only what a person would see.
- Cross-check a sample of collected data against a manual fetch from a different address type. Poisoned data shows up only in comparison.
- Sudden uniformity in your dataset, such as identical prices across unrelated listings, is worth investigating before it reaches a report.
Honeypot misconceptions
A honeypot is not a block
It is a marker. You may keep receiving 200s while everything you collect is worthless.
Rotating addresses does not help
The trap fires on behaviour, and every new address walks into it identically.
robots.txt entries are not honeypots by default
Some disallowed paths are traps, most are simply not meant for crawlers.
Not every hidden element is bait
Modals, menus and lazy content are hidden for ordinary reasons. Judge by whether a person could reach it.
Términos relacionados
Ver esto en práctica
¿Listo para usar trampa honeypot?
SotaProxy te da acceso a proxies residenciales rotativos, móviles, de centro de datos e ISP. Sin compromiso mínimo.
Empezar