通過selenium+pyautogui模擬登陸淘寶(完美實現)


來個續:因為一些其他原因,很久沒有寫代碼了。最近,本來想做個模擬登陸百家號的模擬登陸的程序,但是百度旋轉圖片驗證一直沒搞定,准備用selenium去完成,然后就想找個練練手的,淘寶模擬登陸的坑就踩上了。

遇到過的問題:

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

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

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)

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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM