python淘宝滑块验证_selenium反爬虫之跳过淘宝滑块验证!首先要搞定JS...

python淘宝滑块验证_selenium反爬虫之跳过淘宝滑块验证!首先要搞定JS...

2023年6月29日发(作者:)

python淘宝滑块验证_selenium反爬⾍之跳过淘宝滑块验证!⾸先要搞定JS!在处理问题的之前,给⼤家个第⼀个锦囊!你需要将chorme更新到最新版版本84,下载对应的chorme驱动注意 划重点!!⼀定要做这⼀步,因为我⽤的83的chorme他是不⾏滴,~~~~~~~问题1.⼀周前我的滑块验证代码还是可以OK的,完全没问题!附代码 low⼀眼url = "/member/"(url)ze_window() # 最⼤化# 填写⽤户名密码user = '*****'password = '*******'(8)iframe = _element_by_xpath('//div[@class="bokmXvaDlH"]//iframe')print(iframe)_(iframe)_element_by_xpath('//*[@id="fm-login-id"]').send_keys(id)_element_by_xpath('//*[@id="fm-login-password"]').send_keys(password)(2)# 获取滑块的⼤⼩span_background = _element_by_xpath('//*[@id="nc_1__scale_text"]/span')span_background_size = span_int(span_background_size)# 获取滑块的位置button = _element_by_xpath('//*[@id="nc_1_n1z"]')button_location = onprint(button_location)# 拖动操作:drag_and_drop_by_offset# 将滑块的位置由初始位置,右移⼀个滑动条长度(即为x坐标在滑块位置基础上,加上滑动条的长度,y坐标保持滑块的坐标位置)x_location = span_background_size["width"]y_location = button_location["y"]print(x_location, y_location)action = ActionChains(browser)source = _element_by_xpath('//*[@id="nc_1_n1z"]')_and_hold(source).perform()_by_offset(300, 0)e().perform()(1)# 登录_element_by_xpath('//*[@id="login-form"]/div[4]/button').click()print('登录成功n')完全可以会很好的进⼊淘宝,游刃有余2.淘宝爸爸⼀周后就给我泼凉⽔,增加了⾃⼰的反爬⾍机制,出现如下错误。刚开始我以为是我频繁登录,导致淘宝的机器⼈识别我为代码进⼊。⼀般之前都是会在30分钟内解封。结果⼀天之后还是存在这个问题。查阅资料,翻了我的葵花宝典还是没有解决办法。后来看到⼀个⽂章,可能是淘宝再次更新了⾃⼰对selenium的验证,导致我不在成为漏⽹之鱼。唉唉唉,导致我3天没有解决。现在我把⾃⼰的坑和解决办法给⼤家分享⼀哈。成功的再次成为漏⽹之鱼,哈哈哈!步骤1.⾸先很多熟悉JS的⼈都知道淘宝会检测ver(js检测特征之⼀),但是即使设置了"undefined"还是败下来,看看2.这时候细⼼的就需要观察⼀下他的全局JS,(这个是我参考别⼈的思路)你会发现淘宝爸爸在你浏览器内置的JS中有这么⼀段恐怖的代码就是这个标黄⾊的东西,不会容易被发现的东西被检测到你是selenium进⼊,是不是特别坑!那我们接下来就需要⼲掉他。3.这个时候仔细想⼀下,我们是通过什么打开浏览器呢?是的,知道的都会说这个驱动。那我们就从他开始下⼿,当你打开它后你会发现其中的问题!注意:划重点怎么打开和修改。很多⼈都是乱码,之前我看到Windows系统采⽤nodepad++去打开就可以了,注意我的不⾏!你们可以试⼀下。(有的⼈是可以的,但是我的⽼师电脑不可以),然后我就找了⼀个办法,需要⼤家会⼀点vim操作,很简单的!准确的说就是Linux去解决,因为他不存在编码问题,不会像傻Windows,特别蠢!!开发⼈员最好还是⽤Linux系统吧!经过我认真不负努⼒的搜索,诶找到⼀个靠谱的⽂章,哈哈!外国的‘知乎’就是他!就是这段翻译后的操作。注意 划重点 !!采⽤Linux系统的vim进去后你看到的也是乱码!!哈哈,but和Windows的乱码是不⼀样的,他会让你找到“$cdc_asdjflasutopfhvcZLmcfl_”这个字符串的,神奇吧。这就是Linux的强⼤!!不会Linux命令的童鞋可以⾃⼰搜索⼀下,很简单的。修改后记得要保存哦!4.可能⼤家觉得到这⾥就可以了,NO NO NO 这样⼦你还是登录不掉的。需要最后⼀个锦囊妙计!!具体就是 你需要关闭chorme开发者模式,关闭⾃动测试状态,还需要将⼤家都熟知的把ver设为"undefined"。可能说的不太明⽩,图⽚帮你理解# chrome_options 初始化选项chrome_options = Options()# 设置浏览器初始 位置x,y & 宽⾼x,ychrome__argument(f'--window-position={217},{172}')chrome__argument(f'--window-size={1200},{1000}')# 关闭⾃动测试状态显⽰ // 会导致浏览器报:请停⽤开发者模式# ver还是返回True,当返回undefined时应该才可⾏。chrome__experimental_option("excludeSwitches", ['enable-automation'])加上这个代码会关闭“正受到⾃动测试软件的控制“的显⽰# 通过浏览器的dev_tool在get页⾯钱将.webdriver属性改为"undefined"e_cdp_cmd("iptToEvaluateOnNewDocument", {"source": """Property(navigator, 'webdriver', {get: () => undefined})""",})加上这个代码可以关闭开发者模式# 通过浏览器的dev_tool在get页⾯钱将.webdriver属性改为"undefined"e_cdp_cmd("iptToEvaluateOnNewDocument", {"source": """Property(navigator, 'webdriver', {get: () => undefined})""",})最后我们通过提前运⾏js的⽅法,把ver设为"undefined"!OK !!⼤功告成!!通过这么⼀步步下来,你会发现 我的天居然没有滑块!开森!!正在跳转

发布者:admin,转转请注明出处:http://www.yc00.com/web/1687982880a63564.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信