python+selenium+chrome實(shí)現(xiàn)淘寶購物車秒殺自動結(jié)算
之前總是想要買aj,但是淘寶店鋪每次發(fā)售手動搶的時(shí)候一般都會被黃牛搶走。。。最近畢業(yè)設(shè)計(jì)學(xué)習(xí)了一下python的東西,所以寫了這么一個(gè)搶購的東西算是解決自己一個(gè)小小的愿望,這可是aj啊。
我會把內(nèi)容寫的盡量面向初學(xué)者,從頭至尾的過程都會有所提及。代碼也放在了后面
一、所需環(huán)境
Selenium
Selenium是一個(gè)開源的自動化測試工具。原理是通過模擬瀏覽器操作,還支持java,python,c#,php等主流的編程語言。
一般爬蟲也支持Selenium,一些經(jīng)過js渲染的內(nèi)容和數(shù)據(jù)和ajax異步請求出來的數(shù)據(jù)通過Selenium就能很簡單直觀的爬取下來。但是Selenium的缺點(diǎn)也是顯而易見的,相比于正則的匹配Selenium要加載瀏覽器以及更多的東西,他的執(zhí)行速度比其他模塊慢很多,所以若要保證速度,能不用Selenium就不要用Selenium吧。
web測試自動化:不同于單元測試和接口測試,web測試的自動化更加貼近于人的行為,通過對用戶點(diǎn)擊行為和文本輸入行為等進(jìn)行模擬,當(dāng)web自動化登錄成功后,就去獲取這個(gè)數(shù)據(jù)進(jìn)行斷言。斷言如果相等,測試通過;如果不相等,測試失敗。用戶可以看到某一項(xiàng)操作是否真的產(chǎn)生了,但是程序只能通過判斷某些“證據(jù)”去判斷之前的行為是否真的生效。
二、安裝
下載Selenium并安裝
安裝對應(yīng)瀏覽器的驅(qū)動程序 WebDriver
驅(qū)動程序要和自己電腦上的瀏覽器版本相對應(yīng),比如我使用的chrome瀏覽器是72版本的,就要下載ChromeDriver2.46這個(gè)版本。


下載解壓之后配置環(huán)境變量Path即可。 Mac對應(yīng)的環(huán)境變量配置可以參考這位老哥的文章進(jìn)行配置
三、代碼
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from selenium import webdriver
import datetime
import time
def login():
# 打開淘寶登錄頁,并進(jìn)行掃碼登錄
browser.get("https://www.taobao.com")
time.sleep(3)
if browser.find_element_by_link_text("親,請登錄"):
browser.find_element_by_link_text("親,請登錄").click()
print("請?jiān)?5秒內(nèi)完成掃碼")
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'))
def buy(times, choose):
is_buyed = False
# 點(diǎn)擊購物車?yán)锶x按鈕
if choose == 2:
print("請手動勾選需要購買的商品")
while True:
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
print('現(xiàn)在時(shí)間:', now)
# 對比時(shí)間,時(shí)間到的話就點(diǎn)擊結(jié)算
if now > times:
if choose == 1:
while True:
try:
if browser.find_element_by_id("J_SelectAllcbx1"):
browser.find_element_by_id("J_SelectAllcbx1").click()
print('嘗試全選')
break
except:
print("找不到全選按鈕")
# 點(diǎn)擊結(jié)算按鈕
try:
if browser.find_element_by_id("J_Go"):
browser.find_element_by_id("J_Go").click()
print("結(jié)算成功")
except:
pass
while True:
try:
if browser.find_element_by_link_text('提交訂單') and is_buyed == False:
browser.find_element_by_link_text('提交訂單').click()
now1 = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')
print("搶購成功時(shí)間:%s" % now1)
except:
print("再次嘗試提交訂單")
time.sleep(0.005)
if __name__ == "__main__":
times = input("請輸入搶購時(shí)間,格式如(2018-09-06 11:20:00.000000):")
# 時(shí)間格式:"2018-09-06 11:20:00.000000"
browser = webdriver.Chrome()
browser.maximize_window()
login()
choose = input("到時(shí)間自動勾選購物車請輸入“1”,否則輸入“2”:")
buy(times, choose)
最后run()一把就ok了??!
到此這篇關(guān)于python+selenium+chrome實(shí)現(xiàn)淘寶購物車秒殺自動結(jié)算的文章就介紹到這了,更多相關(guān)python+selenium+chrome 秒殺自動結(jié)算內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python獲取網(wǎng)段內(nèi)ping通IP的方法
今天小編就為大家分享一篇Python獲取網(wǎng)段內(nèi)ping通IP的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Python實(shí)現(xiàn)PDF和TIFF格式之間的相互轉(zhuǎn)換
PDF是數(shù)據(jù)文檔管理領(lǐng)域常用格式之一,主要用于存儲和共享包含文本、圖像、表格、鏈接等的復(fù)雜文檔,而TIFF常見于圖像處理領(lǐng)域, 在實(shí)際應(yīng)用中,我們可能有時(shí)需要將PDF文件轉(zhuǎn)換為TIFF圖像,本文將介紹如何使用Python實(shí)現(xiàn)PDF和TIFF格式之間的相互轉(zhuǎn)換,需要的朋友可以參考下2024-07-07
python reverse反轉(zhuǎn)部分?jǐn)?shù)組的實(shí)例
今天小編就為大家分享一篇python reverse反轉(zhuǎn)部分?jǐn)?shù)組的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
python時(shí)間與Unix時(shí)間戳相互轉(zhuǎn)換方法詳解
這篇文章主要介紹了python時(shí)間與Unix時(shí)間戳相互轉(zhuǎn)換方法詳解,需要的朋友可以參考下2020-02-02

