⽤Python+Selenium破译淘宝滑块验证码,信息安全之路前⾔ 今天是⽤Python+Selenium模拟登录系列破译淘宝滑块验证码 叠片系数>蒸馏水发生器
废话不多说,让我们愉快地开始吧~
开发⼯具
Python版本: 3.6.4
相关模块:
selenium模块;
以及⼀些python⾃带的模块。
Chromedriver:
在下⾯这个链接⾥下载和电脑上的⾕歌浏览器版本相匹配的驱动: /mirrors/chromedriver/
环境搭建
压缩空气汽车安装python并添加到环境变量,pip安装需要的相关模块即可。
原理简介
先实例化⼀个webdriver.Chrome对象,⽤于⾃动化操作我们电脑⾥的⾕歌浏览器:
browser = webdriver.Chrome(executable_path=chromedriverpath, options=chrome_opts)
接着,我们⽤它来⾃动访问⼀下淘宝⽹:
道路交通事故现场图<('www.taobao')
并模拟点击⽹页左上⽅的"亲,请登录"以进⼊淘宝⽹的登录界⾯:
具体⽽⾔,代码实现如下:
button = driver_wait.until(EC.presence_of_element_located((By.CLASS_NAME,'h')))
button.click()
⾃动填充⼀下⽤户名和密码:
# 输⼊⽤户名密码
username_sender = driver_wait.until(EC.presence_of_element_located((By.ID,'fm-login-id'))) username_sender.send_keys(username)
password_sender = driver_wait.until(EC.presence_of_element_located((By.ID,'fm-login-password'))) password_sender.send_keys(password)
上⾯的代码直接⽤ID来定位输⼊框了:
当然你也可以通过以下这些⽅式来定位⽹页中的元素,具体想怎么⽤全看个⼈喜好,初学者不必过于纠结这些东西:
BY.CLASS_NAME
BY.CSS_SELECTOR
BY.LINK_TEXT
BY.NAME
BY.PARTIAL_LINK_TEXT
BY.TAG_NAME
BY.XPATH
⾃动填充完⽤户名和密码后,登录界⾯可能会出现滑块验证码,如下图所⽰:
这类滑块验证码需要⽤户按住滑块,并将它拖动到最右边。⽤ActionChains函数直接把滑块⼀⼝⽓拖到最右边就能验证通过了:
try:
slider = browser.find_element_by_xpath("//span[contains(@class, 'btn_slide')]")
if slider.is_displayed():
ActionChains(browser).click_and_hold(on_element=slider).perform()
ActionChains(browser).move_by_offset(xoffset=258, yoffset=0).perform()
ActionChains(browser).pause(0.5).release().perform()
except:
pass
最后模拟点击⼀下登录按钮就可以了:
# 点击登录按钮
button = driver_wait.until(EC.presence_of_element_located((By.CLASS_NAME,'password-login')))
button.click()数据库探针
⽂章到这⾥就结束了,感谢你的观看,,下个系列将分享画画系列
为了感谢读者们,我想把我最近收藏的⼀些编程⼲货分享给⼤家,回馈每⼀个读者,希望能帮到你们。 ⼲货主要有:
① 2000多本Python电⼦书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中⽂版)
③ 项⽬源码(四五⼗个有趣且经典的练⼿项⽬及源码)
④ Python基础⼊门、爬⾍、web开发、⼤数据分析⽅⾯的视频(适合⼩⽩学习)
⑤ Python学习路线图(告别不⼊流的学习)
All done~私信获取完整源代码。。
阻燃纤维
往期回顾