⽤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_NAMEselenium怎么使用
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~私信获取完整源代码。。
往期回顾

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。