当前位置: 首页 > news >正文

高端网站建设公司哪家更专业峰峰网站建设

高端网站建设公司哪家更专业,峰峰网站建设,wordpress数据表大学,广州生物科技网站建设公司有小伙伴说使用selenium没能绕过机器人检测#xff0c;盘他。 selenium机器人检测有2种#xff0c;一是cdp检测#xff0c;二是webdriver特征检测。cdp检测前面的博客已写过#xff0c;这里就提下webdriver特征检测。一、selenium简介 Selenium 是一个强大的工具#xff…有小伙伴说使用selenium没能绕过机器人检测盘他。 selenium机器人检测有2种一是cdp检测二是webdriver特征检测。cdp检测前面的博客已写过这里就提下webdriver特征检测。一、selenium简介 Selenium 是一个强大的工具用于Web浏览器自动化更常被用于爬虫。 但selenium需要通过webdriver来驱动chrome每次运行selenium时都要先找到对应版本的chromedriver.exe。 chromedriver自动化会对浏览器的部分属性进行修改非常容易被识别为机器人。 pypeeteer却没有这种烦恼它不需要中间驱动所以还是建议大家使用pyppeteer。但如果你已经写了上万行selenium代码了那还是编译一个驱动吧。二、机器人识别网站 1.https://www.browserscan.net/bot-detection 2.https://fingerprintjs.github.io/BotD/main/ 很明显常规网站都能检测到selenium机器人。三、检测原理 1cdp检测 cdp检测的原理一般是利用console.debug()函数来实现当你打开consle控制台时console.debug()才会真正的被调用。 一旦console.debug()函数被触发我们就可以认定你打开了F12控制台。 !DOCTYPE html htmlheadtitleDetect Chrome DevTools Protocol/titlescriptfunction genNum(e) {return 1000 * e.Math.random() | 0;}function catchCDP(e) {if (e.chrome) {var rng1 0;var rng2 1;var acc rng1;var result false;try {var errObj new e.Error();var propertyDesc {configurable: false,enumerable: false,get: function () {acc rng2;return ;}};Object.defineProperty(errObj, stack, propertyDesc);console.debug(errObj);errObj.stack;if (rng1 rng2 ! acc) {result true;}} catch {}return result;}}function isCDPOn() {if(!window)return;const el document.querySelector(span#status);if(!el)return;el.innerText catchCDP(window) ? yes:no;}function init() {isCDPOn();setInterval(isCDPOn, 100);}document.addEventListener(DOMContentLoaded, init);/script /headbodypCDP Detected: span idstatus-/span/p /body/html 2 webdriver特征检测 将下面的js代码复制粘贴进F12控制台// 定义正则表达式 let regex /^([a-z]){3}_.*_(Array|Promise|Symbol|JSON|Object|Proxy)$/; // 获取window对象的所有属性名称 let allProps Object.getOwnPropertyNames(window); // 过滤出符合正则表达式的属性名称 let filteredProps allProps.filter(prop regex.test(prop)); // 输出匹配的属性名 console.log(filteredProps); 在这里插入图片描述 注意这就是这2个站检测selenium机器人的核心逻辑。四、编译crhomedriver.exe 打开chromium源码文件\chrome\test\chromedriver\chrome\devtools_client_impl.cc 1 绕过cdp检测 找到下面的代码 void V8Console::Debug(const v8::debug::ConsoleCallArguments info,const v8::debug::ConsoleContext consoleContext) {TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT(v8.inspector), V8Console::Debug);ConsoleHelper(info, consoleContext, m_inspector).reportCall(ConsoleAPIType::kDebug); } 替换为 void V8Console::Debug(const v8::debug::ConsoleCallArguments info,const v8::debug::ConsoleContext consoleContext) {//TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT(v8.inspector), V8Console::Debug);//ConsoleHelper(info, consoleContext, m_inspector)// .reportCall(ConsoleAPIType::kDebug); } 2 绕过webdriver特征检测 找到下面的代码 std::string script (function () {window.cdc_adoQpoasnfa76pfcZLmcfl_Array window.Array;window.cdc_adoQpoasnfa76pfcZLmcfl_Object window.Object;window.cdc_adoQpoasnfa76pfcZLmcfl_Promise window.Promise;window.cdc_adoQpoasnfa76pfcZLmcfl_Proxy window.Proxy;window.cdc_adoQpoasnfa76pfcZLmcfl_Symbol window.Symbol;window.cdc_adoQpoasnfa76pfcZLmcfl_JSON window.JSON;}) ();;params.Set(source, script); 替换为 std::string script (function () {//window.cdc_adoQpoasnfa76pfcZLmcfl_Array window.Array;//window.cdc_adoQpoasnfa76pfcZLmcfl_Object window.Object;//window.cdc_adoQpoasnfa76pfcZLmcfl_Promise window.Promise;//window.cdc_adoQpoasnfa76pfcZLmcfl_Proxy window.Proxy;//window.cdc_adoQpoasnfa76pfcZLmcfl_Symbol window.Symbol;//window.cdc_adoQpoasnfa76pfcZLmcfl_JSON window.JSON;}) ();;params.Set(source, script); 3.编译 ninja -C out/Default chromedriver 注意编译完后会在out/Default目录下生成一个chromedriver.exe文件这就是驱动。五、验证 将生成的chromedriver.exe拿过来运行下面的python代码from selenium import webdriver from selenium.webdriver.chrome.service import Service import time# 指定chromedriver的路径 s Service(rchromedriver.exe) # 请将这里替换为你的chromedriver路径# 初始化Chrome选项 chrome_options webdriver.ChromeOptions() chrome_options.binary_location rC:\Users\Administrator\AppData\Local\Chromium\Application\chrome.exe # 请将这里替换为你的Chrome浏览器路径 chrome_options.add_argument(--no-sandbox) chrome_options.add_argument(--fingerprints11111111)# 使用Service对象初始化driver driver webdriver.Chrome(services, optionschrome_options) driver.delete_all_cookies()# driver.get(https://www.browserscan.net/bot-detection) driver.get(https://fingerprintjs.github.io/BotD/main/) time.sleep(99999) 指定chromedriver的路径 s Service(rchromedriver.exe) # 请将这里替换为你的chromedriver路径 初始化Chrome选项 chrome_options webdriver.ChromeOptions() chrome_options.binary_location rC:\Users\Administrator\AppData\Local\Chromium\Application\chrome.exe # 请将这里替换为你的Chrome浏览器路径 chrome_options.add_argument(“–no-sandbox”) chrome_options.add_argument(“–fingerprints11111111”) 使用Service对象初始化driver driver webdriver.Chrome(services, optionschrome_options) driver.delete_all_cookies() driver.get(“https://www.browserscan.net/bot-detection”) driver.get(“https://fingerprintjs.github.io/BotD/main/”) time.sleep(99999) 可以看到依旧是自动化控制官网却已经检测不到了。browserscan也一样。六、成品 有能力的小伙伴建议自己把流程全部跑一边编译个自己的指纹浏览器和驱动。
http://www.hkea.cn/news/14336976/

相关文章:

  • 怎么在悉尼做网站网络营销方法的分析与应用
  • 装修设计网站哪个最好wordpress转发插件
  • 怎么做网站广告代理商如何做整人网站
  • 创业网站怎么做的网站宣传的重要性
  • 中企动力做网站收费标准中装建设吧
  • 湖北住房和城乡建设厅官方网站河南网站设计公司价格
  • 可以做数据图的的网站网站建站网站看看
  • 杭州python做网站做淘宝优惠券网站要多少钱
  • 英国做电商网站有哪些方面电商运营的概念
  • 查看邮箱注册的网站全球农村电商平台有哪些
  • 点击app图标进入网站怎么做物流网站建设模板下载
  • 网站建设类书籍做网站的项目实施方案
  • 网站建设z亿玛酷1订制中山做百度网站的公司名称
  • html5 网站建设大厂县城乡建设局网站
  • 呼和浩特网站建设价位网上发布信息的网站怎么做的
  • 设计常去的网站企业网站设计苏州
  • 翻译网站建设wordpress图片盗链
  • 个人商城网站怎么做营销型网站的目标是
  • iis网站伪静态鲲鹏建设集团有限公司网站
  • 分类信息网站织梦模板地方网站优势
  • 网站备案填写电话号码谷德设计网gooood
  • 17网站一起做网店揭阳做网站用哪些软件
  • 网站开发基本流程网站关键词排名优化工具
  • 合肥商业网站建设费用北京网站建设知名公司排名
  • 沙河高端网站建设购物网站的建设的好处
  • 东莞专业网站建设服务微信公众号的子菜单网页怎么制作
  • 北京怎么样做网站公司部门分类
  • 2017年网站推广怎么做网站怎样做的有吸引力
  • 深圳网站建设者linux网站做301重定向
  • 怎么盗号网站怎么做ftp媒体库 wordpress