[Python] 爬虫学习记录 - 淘宝秒杀

新手上路之旅~

需要用到selenium框架

安装selenium命令:pip/pip3 install selenium

我的思想流程:登录 - 检测是否可以结算 (可以结算就去结算) - 提交订单

我使用的环境:Python3.6.5 ,火狐浏览器

需要用到 geckodriver , 下载地址:https://github.com/mozilla/geckodriver/releases

引入工具

# 引入geckodriver,根据您的机器实际路径
firefox = "/xxx/geckodriver/geckodriver" 
browser = webdriver.Firefox(executable_path= firefox)
browser.maximize_window()

登录

# 打开淘宝登录页,并进行扫码登录
browser.get("https://www.taobao.com")
time.sleep(3)
if browser.find_element_by_link_text("亲,请登录"):
    browser.find_element_by_link_text("亲,请登录").click()
    print("请在15秒内完成扫码")
    time.sleep(15)
    browser.get("https://cart.taobao.com/cart.htm")
time.sleep(3)

now = datetime.datetime.now()
print('login success:', now.strftime('%Y-%m-%d %H:%M:%S'))

死循环判断

	# 设置开始时间
	start_time = '2019-06-14 00:00:00.000000'
    while True:
        now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
        if now > times:
            if browser.find_element_by_id('J_SelectAllCbx2'):
                browser.find_element_by_id("J_SelectAll2").click()
                ## 去往结算方法
                goShip()
                break
        time.sleep(0.01)

到时间就去GO结算

# 这里,需要延迟0.01秒,如果没有会结算失败
def goShip():
    time.sleep(0.01)
    while True:
        try:
            if browser.find_element_by_id('J_Go'):
                ship_btn = browser.find_element_by_id('J_Go')
                if ship_btn.get_attribute('class') == "submit-btn":
                    browser.find_element_by_id("J_Go").click()
                    print("结算成功.下一步,提交订单")
                    # 跳转到提交订单方法,请看下面
                    submitOrder()
                    break
                else:
                    if browser.find_element_by_id('J_SelectAllCbx2'):
                        browser.find_element_by_id("J_SelectAll2").click()
        except:
            print("结算发生异常")

提交订单

def submitOrder():
    print("start submit order")
    time.sleep(0.01)
    tijiao_zongshu = 0
    while True:
        tijiao_zongshu += 1
        try:
            if browser.find_element_by_link_text('提交订单'):
                browser.find_element_by_link_text('提交订单').click()
                now1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
                print("抢购成功时间:%s" % now1)
                break
        except:
            print('再次尝试提交订单,当前第 %s 次提交' % tijiao_zongshu)

好了,谢谢您的观看。

你可能感兴趣的:(Python)