Javascript 模拟真实用户点击绕过网络蜜罐
我想刮一个网页,但我不能被检测为机器人。我使用js获取数据、填充输入或单击按钮 我已经读到,我必须考虑一些“diplayed:none”属性,因为它们似乎是蜜罐。在我的网站中,有一个div显示:Javascript 模拟真实用户点击绕过网络蜜罐,javascript,web-scraping,browser,detection,Javascript,Web Scraping,Browser,Detection,我想刮一个网页,但我不能被检测为机器人。我使用js获取数据、填充输入或单击按钮 我已经读到,我必须考虑一些“diplayed:none”属性,因为它们似乎是蜜罐。在我的网站中,有一个div显示: // When mouse is not used <div style="position: absolute; top: 0px; left: 0px; display: none; z-index: 10000;"><div class="
// 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">
//不使用鼠标时
//当鼠标移动但不在任何可点击点上时
//当鼠标停留在clickabel点上时
这让我想到了web检查是以编程方式完成的还是来自真实用户的
因此
- 这是我必须处理的事情还是无关紧要的
- 如果是这样,我怎么能绕过它
<button id="logon" onclick="if(event.isTrusted){SomeFunction();}">Logon</button>
登录
任何试图单击此按钮的JavaScript,如logon.click();如果测试失败,该功能将永远无法运行,而且您无法模拟人类手势
黑客利用那些使用你和我提到的愚蠢伎俩的糟糕程序员。Dave提出的观点很好,但发布的版本是为了清晰起见 看看你能不能愚弄这个小小的修改
<!DOCTYPE html>
<head>
</head>
<body>
<script type="text/javascript">
function SomeFunction(event){
if(event.isTrusted){
alert('This came from a human');
} else {alert('This came from a bot');}
}
</script>
<button id="logon" onclick="SomeFunction(event);">Logon</button>
<button onclick="logon.click();">BOT clicking button</button>
<button onclick="SomeFunction(true);">BOT running function directly</button>
</body>
</html>
函数SomeFunction(事件){
如果(事件已信任){
警惕(“这来自人类”);
}else{alert('这来自一个bot');}
}
登录
机器人点击按钮
BOT直接运行功能
注意:对于最后一个按钮,我们在这里通过一个按钮来模拟一个机器人,这样我们就有了传递人类onclick事件的特权,但是对于一个机器人来说就不是这样了,因此我添加了布尔变量。而这个可以通过简单地运行
SomeFunction()来绕过
直接…添加了一个新帖子来回答你提出的好问题。然后,如果我理解你的意思,如果我看到event.isTrusted.puppeter/Selenium events的任何函数,我就无法克服机器人检测,我不知道你希望谁停止使用它。也许是chrome扩展?你可以删除显示:none
元素,但是我可以看出这个页面没有做你认为它正在做的事情。这个代码改变了那些按钮的外观。他们得到了一个白色的模糊,所以它似乎集中。然而,我真的认为网络可以做一些事情来检测用户是真实的还是机器人。