zoukankan      html  css  js  c++  java
  • 通过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)

    声明下哈:我不擅长写博文,就是看大家不少人卡在模拟登陆这里了,写了个简单的,读不懂的就多看几遍,我就写个原理,两小时内就能实现!祝你成功啦,还不懂就给我留言吧,大家互相帮助。

  • 相关阅读:
    Fiddler 教程
    ios iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
    ios 生成一个动态的随机的头像/随机数的操作
    在工程中如何使用一个公用的页面
    使用手势,让键盘在点击空白处消失
    ios开发之--iOS 11适配:iOS11导航栏返回偏移
    svn 操作字母的提示
    字面量
    控制 打开和关闭远程推送通知
    常见结构体 日期 字符串的操作 很实用
  • 原文地址:https://www.cnblogs.com/AAA-AAA-AAA/p/11876024.html
Copyright © 2011-2022 走看看