美文网首页
Python新手日记-selenium实现自动化淘宝锁单

Python新手日记-selenium实现自动化淘宝锁单

作者: 海0_0滨 | 来源:发表于2019-11-16 13:33 被阅读0次

    双十一过去,突发奇想是不是可以用python实现自动化清空购物车,顺便学习.记录在此,python小白,还请大神知道.
    工具:pyCharm,Python3.6,selenium3.141,火狐浏览器,geckodriver.开发环境:mac-Pro
    基本开发工具不做过多介绍,直接开说不知道的.

    • selenium:
      *selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。

    • geckodriver
      *下载地址:https://github.com/mozilla/geckodriver
      *用于驱动火狐浏览器
      *至于为什么选用火狐而不是程序员利器chrome,主要原因大家应该也能猜到,chrome的驱动chromedriver是真的不好下载.花钱买的蓝灯最近也不好用,所以此处就用了火狐.道理都是一样的.
      *如何试用geckodriver:找到火狐路径/Applications/Firefox.app/Contents/MacOS/firefox,将下载好的geckodriver放到文件夹下->完工.

    • 使用步骤:
      *扫码登录
      *购物车选中物品
      *设置好时间,等待时间到后自动结算、提交订单

    • 直接上代码.

    from selenium import webdriver
    import datetime
    
    # 扫码登录,设置结算时间
    def begin():
    
        print("请扫码登录")
    
        currentUrl = driver.current_url
        while ((url in currentUrl) == False):
            currentUrl = driver.current_url
            pass
        print("登录成功,选择要购买的物品")
        time = input("请输入时间,格式为:2019-08-08 15:01:00: \n")
        while (1):
    
            try:
                print(time,type(time))
                time_date = datetime.datetime.strptime(time,'%Y-%m-%d %H:%M:%S')
                print("输入时间:", time_date)
                now_date = datetime.datetime.now()
                print("当前时间:",now_date)
                while (now_date != time_date):
                    now_date = datetime.datetime.now()
                    pass
                print("时间到")
                click_account()
    
            except:
                time = input("时间格式有误:xxxx-xx-xx xx:xx:xx: \n")
    
    # 点击结算按钮
    def click_account():
        while (1):
            try:
                account_btn = driver.find_element_by_css_selector('a[id="J_SmallSubmit"][class="submit-btn"]')
                account_btn.click()
                print(account_btn)
                click_submit()
                break
            except:
                pass
    
    # 点击立即提交
    def click_submit():
    
        submit_btns = driver.find_elements_by_css_selector('a[class="go-btn"]')
        print(submit_btns)
        while (len(submit_btns)==0):
            submit_btns = driver.find_elements_by_css_selector('a[class="go-btn"]')
        submit_btn = submit_btns[0]
        submit_btn.click()
    
    if __name__ == '__main__':
    
        # 这是下载在mac中的火狐可执行文件的默认地址
        geckodriver = r'/Applications/Firefox.app/Contents/MacOS/geckodriver'
        driver = webdriver.Firefox(executable_path=geckodriver)
        url = 'https://cart.taobao.com/cart.htm'
        # 可以改成你想显示的网页
        driver.get(url)
    
        begin()
    

    注意:经测试,从设置的时间开始到提交完订单,最快也需要2-3秒.所以本文章用户淘宝自动抢单是不可靠的,仅作为娱乐学习为主,代码书写规范存在问题,还请多执教

    阿里云服务器免费领了,企业新用户:4核-8G-5M,个人用户:2核-4G-1M
    点击立即领取

    免费阿里云服务器立即领取

    相关文章

      网友评论

          本文标题:Python新手日记-selenium实现自动化淘宝锁单

          本文链接:https://www.haomeiwen.com/subject/ethyictx.html