模拟真实用户点击绕过网络蜜罐

问题描述

我想抓取一个网页,但无法被检测为机器人。我正在使用js来获取数据,填充输入或单击按钮。

我读到我必须考虑一些“显示:无”属性,因为它们似乎是蜜罐。在我的Webe中,有一个div显示以下内容

     // When mouse is not used
<div style="position: absolute; top: 0px; left: 0px; display: none; z-index: 10000;"><div class="tip">
     // When mouse has moved but not on any clickable point
<div style="position: absolute; top: 264px; left: 272px; z-index: 10000; display: none;"><div class="tip">
     // When mouse on a clickabel point
<div style="position: absolute; top: 264px; left: 272px; z-index: 10000;"><div class="tip">

这使我想起了网络检查点击是通过编程方式完成还是来自真实用户

从而

  • 这是我必须处理的事情还是无关紧要的?
  • 如果是,我该如何绕过它?

非常感谢您

解决方法

display:none; 并不是您唯一的问题,也可以使用负数 left:-100px; top:-100px; 值和/或 color:white; 在白色背景上,依此类推。

但是,当他们要做的只是这些事情时,他们全都是顽强地尝试阻止bot ...

幸运的是,JavaScript已经提供了一种机制,该机制可通过“ isTrusted ”布尔属性来确定事件是否由用户启动。用法如下...

<button id="logon" onclick="if(event.isTrusted){SomeFunction();}">Logon</button>

任何JavaScript尝试单击此按钮,例如logon.click();。将无法通过该测试,并且该功能将永远无法运行,而且您无法模拟人的手势。

黑客会利用不良的程序员,这些程序员会使用愚蠢的技巧,例如您和我提到的那些技巧。

,

戴夫(Dave)提出了很好的观点,但发布的版本是出于清晰目的。

看看你能不能愚弄这个小修改...

public class NewStudentEvaluator { // new student logic }
public class ReturningStudentEvaluator { // returning student logic }

NB:对于最后一个按钮,我们在此处通过一个按钮模拟了一个BOT,因此我们可以很方便地传递人类onclick事件来通过,但是BOT并非如此,因此布尔变量我加了。