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

双十一过去,突发奇想是不是可以用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实现自动化淘宝锁单)