經過selenium+pyautogui模擬登錄淘寶(完美實現)

來個續:由於一些其餘緣由,好久沒有寫代碼了。最近,原本想作個模擬登錄百家號的模擬登錄的程序,可是百度旋轉圖片驗證一直沒搞定,準備用selenium去完成,而後就想找個練練手的,淘寶模擬登錄的坑就踩上了。html

遇到過的問題:web

網上的能人異士挺多,大部分帖子也看了,很多都有小下次,好多都是過不了淘寶系統檢測到webdriver,抓包方式可以找到緣由,js返回給服務器的數據不同,這個很少說了。三條代碼搞得定,問題是這個搞定了以後,依然會出現煩人的滑動條,而且怎麼操做都沒用,調速度也很差用,後來發現不是這個緣由,滑動條出現的時候是在定位元素以後發生的,因此只要有find_element_by類似的定位功能出現,淘寶服務器必定會反爬到你,好傢伙,這個咱們不用了,我打開登錄界面sleep一會,一切都是手動操做,登陸後,獲取頁面信息,成功了!如今問題就變成把人工作這部分不用selenium的方式給搞定,我也是各類百度,知道有個叫pyautogui的庫能夠實現,相關功能,因而現學現賣,二合一一不當心就成功了。服務器

上個簡版的代碼,過程當中若是出問題了,可能得多安裝幾個庫。ui

from selenium import webdriver as wb
import pyautogui
import PIL
# 設置速度
pyautogui.PAUSE = 0.5 

 # 這三行是切換到開發者模式
options = wb.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-automation'])  
browser = wb.Chrome(options=options)

# 窗口最大化保證座標正確
browser.maximize_window()  
browser.get('https://login.taobao.com/member/login.jhtml')

# 在當前屏幕中查找指定圖片(圖片須要由系統截圖功能截取的圖)
# 00.jpg是截取好的密碼登陸圖片
coords = pyautogui.locateOnScreen('00.jpg')
# 獲取定位到的圖中間點座標
x, y = pyautogui.center(coords)
# 左擊
pyautogui.leftClick(x, y)
# 這裏切換過來後,光標直接就在 用戶名 那裏,省了很多麻煩
pyautogui.typewrite(用戶名)
# 填充完用戶名以後,tab切換下就是密碼了
pyautogui.press('tab')
pyautogui.typewrite(密碼)
# 3.jpg是截圖好的登錄圖片
coords = pyautogui.locateOnScreen('3.jpg')
# 獲取定位到的圖中間點座標
x, y = pyautogui.center(coords)
pyautogui.leftClick(x, y)
# 打印html ,ok能夠搜索到你的登錄用戶名,也能夠實現其餘操做了
print(browser.page_source)

聲明下哈:我不擅長寫博文,就是看你們很多人卡在模擬登錄這裏了,寫了個簡單的,讀不懂的就多看幾遍,我就寫個原理,兩小時內就能實現!祝你成功啦,還不懂就給我留言吧,你們互相幫助。spa

相關文章
相關標籤/搜索