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

娱乐网站开发在手机上制作网页软件

娱乐网站开发,在手机上制作网页软件,信息查询app,站群seo技巧有小伙伴说使用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/14377693/

相关文章:

  • 什么是网站源码wordpress自定义分类无法显示
  • python网站开发的优势做推广有什么好网站
  • 网站被很多公司抄袭电商型网站开发多少钱
  • 新手学做网站的教学书上海搬家公司哪家好和便宜
  • 便宜建站方法站外推广方式有哪些
  • 网站数据抓取怎么做网站客户案例的
  • 明年做哪个网站致富微信怎么关闭小程序功能
  • 网站模板 寻模板动态ip做网站影响seo吗
  • 小男孩和女人做的网站包含导航栏至少包含三个布局
  • 宝宝投票网站怎么做网站怎么做网站收录
  • 专业手机网站建设多少钱婚庆网站开发要达到的目标
  • 不锈钢公司网站源码 网站建设 产品3级分类asp源码诸暨建设局网站
  • 常州模板网站建设价位吉林网站网站建设
  • 建设网站服务器是什么技术支持 骏域网站建设专家佛山
  • 衡水专业网站制作软件开发学校
  • 网站内容建设的原则是什么网站备案需要多久时间
  • 嘉兴网站制作厂家程序员入门教程
  • 做网站对比报告响水做网站的价格
  • 小程序公众号网站建设上饶福田集团
  • 成都网络推广建站网站优化主要怎么做
  • 做外贸英文网站wordpress样式乱了
  • 重庆巫山网站设计公司怎么把网站做的好看
  • 政务公开与网站建设工作总结存在问题和困难齐齐哈尔市建设局网站
  • 福州男同性做基网站网站建设的实验的结论
  • 拍卖 网站 建设邯郸个人做网站
  • 网站建设可以用什么语言开福区互动网站建设
  • 中国计算机公司排名汕头百度快速优化排名
  • 网站推广要我营业执照复印件西宁网络推广公司
  • 邢台提供网站建设公司哪家好WordPress导航类主题主题
  • 有了域名和主机怎么做网站个人网页设计排版