目录
前言
这几天因为需要一点全国各地空气质量的数据来做分析,但是在数据采集的过程中遇到了一些很有意思的东西,所以决定分享出来。
一、仗剑天涯
首先我们先去站点看一看, 目标站点为aHR0cDovL3d3dy5hcWlzdHVkeS5jbi9oaXN0b3J5ZGF0YS8=
打开站点后我们会发现全国各大城市都给我们展示出来了,如图
随便选择一个城市进入,按照正常的流程来说应该到F12大哥出马的时候了,但是似乎大哥今天不太想工作
没关系,既然大哥不想工作,那我们就想点办法让大哥工作,没办法,人到中年不得已啊
我们此处可以提前打开开发者工具,或者 Ctrl + Shift + I 等等都行,执行之后会发现熟悉的debugger
放行之后页面会出现以下情况
不用慌,刷新一下即可正常浏览
二、夺剑抢人
大哥被我们强行叫起来工作,应该是不在状态,并没有达到我们预期的效果
所以我们还要给大哥上点猛药,这里我推荐 小黄人——XHR断点,它能让大哥再次做回自己、重拾自信。随着小黄人的药力慢慢起了作用,大哥的战斗也进入了白热化阶段,敌对势力的弱点也暴露在我们的眼前。
既然这样我们就要贯彻我们的原则,直捣黄龙,直接进
最后结果为
看到这里我想大家都明了了,但是说了半天我们都没有和我们的文章标题扯上关系,不要着急,大哥还没结束,大哥还在战斗!
三、了然于心,如履平地
敌人已经缴械,但是大哥还没有停下,大哥清点敌人武器时得到了这样一段代码
function checkwebdriver() {
let items = ['webdriver', '__driver_evaluate', '__webdriver_evaluate', '__selenium_evaluate', '__fxdriver_evaluate', '__driver_unwrapped', '__webdriver_unwrapped', '__selenium_unwrapped', '__fxdriver_unwrapped', '_Selenium_IDE_Recorder', '_selenium', 'calledSelenium', '_WEBDRIVER_ELEM_CACHE', 'ChromeDriverw', 'driver-evaluate', 'webdriver-evaluate', 'selenium-evaluate', 'webdriverCommand', 'webdriver-evaluate-response', '__webdriverFunc', '__webdriver_script_fn', '__lastWatirAlert', '__lastWatirConfirm', '__lastWatirPrompt'];
for (i =0 ; i<items.length;i++) {
item = items[i];
// console.log(item, window.navigator[item])
if (window.navigator[item]) {
return true;
}
}
if (/HeadlessChrome/.test(window.navigator.userAgent)) {
return true;
}
if(navigator.plugins.length == 0) {
//console.log("It may be Chrome headless");
return true;
}
if(navigator.languages == "") {
// console.log("Chrome headless detected");
return true;
}
return false;
};
这就好比直接把他们的指挥部告诉我了,既然这么信任我,那我不让大哥弄它我都对不住你的信任
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined,
})
"""
})
其他同上即可
如果不去反制这段代码的话效果是这样的
而当我们携带上反制代码之后是这样的
总结
本文到这里就结束了,水分还是比较足的,主要是记录这次有趣的事件,如果此文侵犯了您的合法权益,请联系我删除,联系方式:LyonzzzzZ