获取某站点的评论数据,接入API后,会返回登录页面,即不登录,获取不到足够的信息。因此,我打算使用puppeteer登录获取cookie来解决问题。遇到的问题有两个:navigator.webdriver网上教程大多使用Object.defineProperty(navigator,'webdriver',{get:()=>undefined,})或者constbrower=awaitpuppeteer.launch({//configignoreDefaultArgs:['--启用自动化']});经验证,问题无法解决,//navigator.webdriver=true再看最新的写法awaitpage.evaluateOnNewDocument(()=>{constnewProto=navigator.__proto__;deletenewProto.webdriver;navigator.__proto__=newProto;});直接用evaluateOnNewDocument删除这个属性就可以解决传送门滑动验证验证navigator.webdriver后,基本没有slider了,不过还是在之前的测试中做的解决方法//将登录容器移到屏幕左侧,避免获取位置失败let_block=awaitawaitpage.$('#nc_1_n1z')awaitpage.evaluate(()=>{letbox=document.querySelector('.login-box-warp');box.setAttribute('style','letf:1px;right:auto');});//获取目标位置lettrack=awaitpage.evaluate(()=>{letstep=20;letslider=document.querySelector('#nc_1__scale_text');letblock=document.querySelector('#nc_1_n1z');让sBound=slider.getBoundingClientRect();让bBound=block.getBoundingClientRect();让跟踪=[];让xStart=parseFloat(sBound.x*1.0+bBound.width*0.5);让xEnd=parseFloat(sBound.x*1.0+sBound.width*1.0);让y=parseFloat(sBound.y*1.0+bBound.height*0.5);让距离=(sBound.width*1.0)/(step-1);track.push([xStart,y+1]);for(leti=0;i