日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 淘宝滑块验证_python2.7+selenium2实现淘宝滑块自动认证功能

發布時間:2025/3/20 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 淘宝滑块验证_python2.7+selenium2实现淘宝滑块自动认证功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文為大家分享了python2.7+selenium2實現淘寶滑塊自動認證的具體代碼,供大家參考,具體內容如下

1.編譯環境

操作系統:win7;語言:python2.7+selenium2;ide:pycharm;瀏覽器:IE10,chrome

2.1意外開始

今天登錄淘寶時候發現吧密碼搞忘了,選擇找回密碼時淘寶居然加了滑塊認證。

恰巧自己也在學習selenium,就想試一試能不能實現自動拖動滑塊。

2.2 度娘查找

由于自己沒多少思路,第一選擇就是問度娘,終于找到一篇文章,該文章使用C#實現了該功能,并提到需要定位滑塊元素在網頁和桌面的坐標,而這個功能直接可以用selenium中的查找元素接口搞定,那么剩下最后一個問題就是如何得知滑塊的位移量。(原諒我忘記該文章的名字了)

2.3 開始試驗

大家在手動操作滑塊的時候會發現如果滑塊位移不夠,它要自動還原就不能觸發認證成功環節,所以我用一個笨方法先手動操作看看。打開瀏覽器按F12,得到代碼如下:

然后拖動滑塊位移,發現滑塊元素的style一直在變化如圖:

現在大概清楚右位移量為300px,OK開始寫代碼,經過很多次試驗確定滑塊移動后有三種情況:

1無響應:請按住滑塊,拖到到最右邊;

2失敗:哎呀,加載失敗了,請點擊刷新頁面

3成功:請點擊圖中xx字,請在下方輸入xx字

解決思路:無響應時,需要重復拖動滑塊,直到成功為止;失敗了,需要自動點擊刷新按鈕,使滑塊回到無響應狀態;成功了,暫時是直接退出瀏覽器,驗證碼識別還在研究中,以后補齊。

2.4 完整代碼

PS:粘貼上去的代碼,我不知道怎么對齊,如果大家直接復制運行,可能會報錯,請自動修改。

# encoding=utf-8

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

import time

#使用谷歌瀏覽器,方便查看效果,如果追求速度可以用phantomJS

driver=webdriver.Chrome()

#調整最大窗口,否則某些元素無法顯示

driver.maximize_window()

#使用淘寶找回密碼界面做測試

driver.get('https://passport.taobao.com/ac/password_find.htm?spm=a2107.1.0.0.phBxhD&from_site=0')

time.sleep(5)#等待滑動模塊和其他JS文件加載完畢!

while True:

try:

#定位滑塊元素

source=driver.find_element_by_xpath("//*[@id='nc_1_n1z']")

#定義鼠標拖放動作

ActionChains(driver).drag_and_drop_by_offset(source,400,0).perform()

#等待JS認證運行,如果不等待容易報錯

time.sleep(2)

#查看是否認證成功,獲取text值

text=driver.find_element_by_xpath("//div[@id='nc_1__scale_text']/span")

#目前只碰到3種情況:成功(請在在下方輸入驗證碼,請點擊圖);無響應(請按住滑塊拖動);失敗(哎呀,失敗了,請刷新)

if text.text.startswith(u'請在下方'):

print('成功滑動')

break

if text.text.startswith(u'請點擊'):

print('成功滑動')

break

if text.text.startswith(u'請按住'):

continue

except Exception as e:

#這里定位失敗后的刷新按鈕,重新加載滑塊模塊

driver.find_element_by_xpath("//div[@id='havana_nco']/div/span/a").click()

print(e)

#退出瀏覽器,如果瀏覽器打開多個窗口,可以使用driver.close()關閉當前窗口而不是關閉瀏覽器

driver.quit()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的python 淘宝滑块验证_python2.7+selenium2实现淘宝滑块自动认证功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。