经过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