国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python制作【大麥網(wǎng)】自動搶票程序_python大麥搶票

這篇具有很好參考價值的文章主要介紹了Python制作【大麥網(wǎng)】自動搶票程序_python大麥搶票。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

大麥網(wǎng),是中國綜合類現(xiàn)場娛樂票務(wù)營銷平臺,業(yè)務(wù)覆蓋演唱會、 話劇、音樂劇、體育賽事等領(lǐng)域。

但是因為票數(shù)有限,還有黃牛們不能丟了飯碗,所以導(dǎo)致了,很多人都搶不到票

那么,今天帶大家用Python來制作一個自動搶票的腳本小程序

知識點:

  • 面向?qū)ο缶幊?/li>
  • selenium 操作瀏覽器
  • pickle 保存和讀取Cookie實現(xiàn)免登陸
  • time 做延時操作
  • os 創(chuàng)建文件,判斷文件是否存在

開發(fā)環(huán)境:

  • 版 本:anaconda5.2.0(python3.6.5)
  • 編輯器:pycharm

先導(dǎo)入本次所需的模塊

import os
import time
import pickle
from time import sleep
from selenium import webdriver

第一步,實現(xiàn)免登錄

確定目標(biāo),設(shè)置全局變量
# 大麥網(wǎng)主頁
damai_url = "https://www.damai.cn/"
# 登錄頁
login_url = "https://passport.damai.cn/login?ru=https%3A%2F%2Fwww.damai.cn%2F"
# 搶票目標(biāo)頁
target_url = 'https://detail.damai.cn/item.htm?spm=a2oeg.search_category.0.0.77f24d15RWgT4o&id=654534889506&clicktitle=%E5%A4%A7%E4%BC%97%E7

初始化加載
class Concert:
    def __init__(self):
        self.status = 0         # 狀態(tài),表示如今進(jìn)行到何種程度
        self.login_method = 1   # {0:模擬登錄,1:Cookie登錄}自行選擇登錄方式
        self.driver = webdriver.Chrome(executable_path='chromedriver.exe')        # 默認(rèn)Chrome瀏覽器

登錄調(diào)用設(shè)置cookie
def set_cookie(self):
    self.driver.get(damai_url)
    print("###請點擊登錄###")
    while self.driver.title.find('大麥網(wǎng)-全球演出賽事官方購票平臺') != -1:
        sleep(1)
    print('###請掃碼登錄###')

    while self.driver.title != '大麥網(wǎng)-全球演出賽事官方購票平臺-100%正品、先付先搶、在線選座!':
       sleep(1)
    print("###掃碼成功###")
    pickle.dump(self.driver.get_cookies(), open("cookies.pkl", "wb"))
    print("###Cookie保存成功###")
    self.driver.get(target_url)

獲取cookie
def get_cookie(self):
    try:
        cookies = pickle.load(open("cookies.pkl", "rb"))  # 載入cookie
        for cookie in cookies:
            cookie_dict = {
                'domain':'.damai.cn',  # 必須有,不然就是假登錄
                'name': cookie.get('name'),
                'value': cookie.get('value')
            }
            self.driver.add_cookie(cookie_dict)
        print('###載入Cookie###')
    except Exception as e:
        print(e)

登錄
    def login(self):
        if self.login_method==0:
            self.driver.get(login_url)                                
            # 載入登錄界面
            print('###開始登錄###')

        elif self.login_method==1:
            if not os.path.exists('cookies.pkl'):                     
            # 如果不存在cookie.pkl,就獲取一下
                self.set_cookie()
            else:
                self.driver.get(target_url)
                self.get_cookie()

打開瀏覽器
def enter_concert(self):
    """打開瀏覽器"""
    print('###打開瀏覽器,進(jìn)入大麥網(wǎng)###')
    # self.driver.maximize_window()           # 最大化窗口
    # 調(diào)用登陸
    self.login()                            # 先登錄再說
    self.driver.refresh()                   # 刷新頁面
    self.status = 2                         # 登錄成功標(biāo)識
    print("###登錄成功###")
    # 后續(xù)德云社可以講
    if self.isElementExist('/html/body/div[2]/div[2]/div/div/div[3]/div[2]'):
        self.driver.find_element_by_xpath('/html/body/div[2]/div[2]/div/div/div[3]/div[2]').click()

第二步,搶票并下單

判斷元素是否存在
def isElementExist(self, element):
    flag = True
    browser = self.driver
    try:
        browser.find_element_by_xpath(element)
        return flag

    except:
        flag = False
        return flag

選票操作
def choose_ticket(self):
    if self.status == 2:                  #登錄成功入口
        print("="*30)
        print("###開始進(jìn)行日期及票價選擇###")
        while self.driver.title.find('確認(rèn)訂單') == -1:           # 如果跳轉(zhuǎn)到了訂單結(jié)算界面就算這步成功了,否則繼續(xù)執(zhí)行此步
            try:
                buybutton = self.driver.find_element_by_class_name('buybtn').text
                if buybutton == "提交缺貨登記":
                    # 改變現(xiàn)有狀態(tài)
                    self.status=2
                    self.driver.get(target_url)
                    print('###搶票未開始,刷新等待開始###')
                    continue
                elif buybutton == "立即預(yù)定":
                    self.driver.find_element_by_class_name('buybtn').click()
                    # 改變現(xiàn)有狀態(tài)
                    self.status = 3
                elif buybutton == "立即購買":
                    self.driver.find_element_by_class_name('buybtn').click()
                    # 改變現(xiàn)有狀態(tài)
                    self.status = 4
                # 選座購買暫時無法完成自動化
                elif buybutton == "選座購買":
                    self.driver.find_element_by_class_name('buybtn').click()
                    self.status = 5
            except:
                print('###未跳轉(zhuǎn)到訂單結(jié)算界面###')
            title = self.driver.title
            if title == '選座購買':
                # 實現(xiàn)選座位購買的邏輯
                self.choice_seats()
            elif title == '確認(rèn)訂單':
                while True:
                    # 如果標(biāo)題為確認(rèn)訂單
                    print('waiting ......')
                    if self.isElementExist('//*[@id="container"]/div/div[9]/button'):
                        self.check_order()
                        break

選擇座位
    def choice_seats(self):
        while self.driver.title == '選座購買':
            while self.isElementExist('//*[@id="app"]/div[2]/div[2]/div[1]/div[2]/img'):
                # 座位手動選擇 選中座位之后//*[@id="app"]/div[2]/div[2]/div[1]/div[2]/img 就會消失
                print('請快速的選擇您的座位?。?!')
            # 消失之后就會出現(xiàn) //*[@id="app"]/div[2]/div[2]/div[2]/div
            while self.isElementExist('//*[@id="app"]/div[2]/div[2]/div[2]/div'):
                # 找到之后進(jìn)行點擊確認(rèn)選座
                self.driver.find_element_by_xpath('//*[@id="app"]/div[2]/div[2]/div[2]/button').click()

下單操作
def check_order(self):
    if self.status in [3,4,5]:
        print('###開始確認(rèn)訂單###')
        try:
            # 默認(rèn)選第一個購票人信息
            self.driver.find_element_by_xpath('//*[@id="container"]/div/div[2]/div[2]/div[1]/div/label').click()
        except Exception as e:
            print("###購票人信息選中失敗,自行查看元素位置###")
            print(e)
        # 最后一步提交訂單
        time.sleep(0.5)  # 太快會影響加載,導(dǎo)致按鈕點擊無效
        self.driver.find_element_by_xpath('//div[@class = "w1200"]//div[2]//div//div[9]//button[1]').click()

搶票完成,退出
def finish(self):
    self.driver.quit()

測試代碼是否成功
if __name__ == '__main__':
    try:
        con = Concert()             # 具體如果填寫請查看類中的初始化函數(shù)
        con.enter_concert()         # 打開瀏覽器
        con.choose_ticket()         # 開始搶票

    except Exception as e:
        print(e)
        con.finish()

最后看下效果如何

Python制作【大麥網(wǎng)】自動搶票程序_python大麥搶票,python,開發(fā)語言

如果你對Python感興趣,想要學(xué)習(xí)python,這里給大家分享一份Python全套學(xué)習(xí)資料,都是我自己學(xué)習(xí)時整理的,希望可以幫到你,一起加油!

??有需要的小伙伴,可以V掃描下方二維碼免費領(lǐng)取??

Python制作【大麥網(wǎng)】自動搶票程序_python大麥搶票,python,開發(fā)語言 ### [](https://blog.csdn.net/mate1357/article/details/134029316?spm=1001.2100.3001.7377&utm_medium=distribute.pc_feed_blog_category.none-task-blog-classify_tag-8-134029316-null-null.nonecase&depth_1-utm_source=distribute.pc_feed_blog_category.none-task-blog-classify_tag-8-134029316-null-null.nonecase)1??零基礎(chǔ)入門
① 學(xué)習(xí)路線

對于從來沒有接觸過Python的同學(xué),我們幫你準(zhǔn)備了詳細(xì)的學(xué)習(xí)成長路線圖??梢哉f是最科學(xué)最系統(tǒng)的學(xué)習(xí)路線,你可以按照上面的知識點去找對應(yīng)的學(xué)習(xí)資源,保證自己學(xué)得較為全面。
Python制作【大麥網(wǎng)】自動搶票程序_python大麥搶票,python,開發(fā)語言

② 路線對應(yīng)學(xué)習(xí)視頻

還有很多適合0基礎(chǔ)入門的學(xué)習(xí)視頻,有了這些視頻,輕輕松松上手Python~
Python制作【大麥網(wǎng)】自動搶票程序_python大麥搶票,python,開發(fā)語言

③練習(xí)題

每節(jié)視頻課后,都有對應(yīng)的練習(xí)題哦,可以檢驗學(xué)習(xí)成果哈哈!
Python制作【大麥網(wǎng)】自動搶票程序_python大麥搶票,python,開發(fā)語言

2??國內(nèi)外Python書籍、文檔

① 文檔和書籍資料

Python制作【大麥網(wǎng)】自動搶票程序_python大麥搶票,python,開發(fā)語言

3??Python工具包+項目源碼合集

①Python工具包

學(xué)習(xí)Python常用的開發(fā)軟件都在這里了!每個都有詳細(xì)的安裝教程,保證你可以安裝成功哦!
Python制作【大麥網(wǎng)】自動搶票程序_python大麥搶票,python,開發(fā)語言

②Python實戰(zhàn)案例

光學(xué)理論是沒用的,要學(xué)會跟著一起敲代碼,動手實操,才能將自己的所學(xué)運用到實際當(dāng)中去,這時候可以搞點實戰(zhàn)案例來學(xué)習(xí)。100+實戰(zhàn)案例源碼等你來拿!
Python制作【大麥網(wǎng)】自動搶票程序_python大麥搶票,python,開發(fā)語言

③Python小游戲源碼

如果覺得上面的實戰(zhàn)案例有點枯燥,可以試試自己用Python編寫小游戲,讓你的學(xué)習(xí)過程中增添一點趣味!
Python制作【大麥網(wǎng)】自動搶票程序_python大麥搶票,python,開發(fā)語言

4??Python面試題

我們學(xué)會了Python之后,有了技能就可以出去找工作啦!下面這些面試題是都來自阿里、騰訊、字節(jié)等一線互聯(lián)網(wǎng)大廠,并且有阿里大佬給出了權(quán)威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。
Python制作【大麥網(wǎng)】自動搶票程序_python大麥搶票,python,開發(fā)語言
Python制作【大麥網(wǎng)】自動搶票程序_python大麥搶票,python,開發(fā)語言

上述所有資料 ?? ,朋友們?nèi)绻行枰?,可以掃描下??????二維碼免費領(lǐng)取??
?Python制作【大麥網(wǎng)】自動搶票程序_python大麥搶票,python,開發(fā)語言文章來源地址http://www.zghlxwxcb.cn/news/detail-848863.html

到了這里,關(guān)于Python制作【大麥網(wǎng)】自動搶票程序_python大麥搶票的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Python腳本】Python自動大麥網(wǎng)搶票,準(zhǔn)點原價秒殺演唱會門票,拒絕黃牛交易!從我做起!??!1

    【Python腳本】Python自動大麥網(wǎng)搶票,準(zhǔn)點原價秒殺演唱會門票,拒絕黃牛交易!從我做起?。?!1

    你是否錯過了周杰倫的票,最近又沒搶到五月天的票,不要太難過,今晚有張學(xué)友的票,后天還有張杰的票,加油哦! Python配套案例源碼、資料點擊領(lǐng)取福利 為了幫助你在激烈的搶票競爭中獲得更大的成功機(jī)會,本文將介紹搶票軟件的實現(xiàn)原理以及我所了解的一些搶票方式

    2024年02月11日
    瀏覽(21)
  • Python 大麥搶票腳本

    請注意,編寫或使用搶票腳本可能違反相關(guān)網(wǎng)站的服務(wù)條款和法律法規(guī)。以下內(nèi)容僅供學(xué)習(xí)和了解技術(shù)原理之用,不鼓勵或支持任何違反規(guī)定的行為。 在Python中編寫大麥網(wǎng)搶票腳本通常涉及以下幾個步驟: ### 1. 分析網(wǎng)站結(jié)構(gòu) - 使用瀏覽器的開發(fā)者工具(如Chrome的Inspect功能)

    2024年04月12日
    瀏覽(21)
  • appium移動端python大麥網(wǎng)搶票

    使用appium不是一個很好的選擇,而且也不一定能搶到票,由于沒有學(xué)習(xí)逆向工程,所以這個只能使用這個框架,這個框架在界面中有輪播,播放的情況下,定位元素會十分慢,但是我周圍的人確實能夠手工搶到票,做這個的意義就是省去人工操作,最后提升下我的技能。

    2024年02月17日
    瀏覽(22)
  • 大麥搶票腳本全自動化

    大麥搶票腳本全自動化

    代碼中首先進(jìn)行改造,基于autojs實現(xiàn)安卓端自動搶購,簡單來說就是在代碼中填寫好場次、票價、觀影人等信息后,停留在搶購頁面,出現(xiàn)立即搶購按︾便會執(zhí)行自動化點擊,直到處于待付款狀態(tài)才停止。 ? 可以自動檢測最新版本圖片滑塊,并滑動。 更新不自動點搶票按鈕

    2024年02月04日
    瀏覽(23)
  • 基于selenium的大麥網(wǎng)自動搶票腳本

    基于selenium的大麥網(wǎng)自動搶票腳本

    先配置webdriver ? 記錄cookie,設(shè)置免密登錄? 購票頁面下單 ? 選擇座位+選擇場次,票檔(因為檢索是否需要選擇座位要浪費點時間,所以直接寫了兩個方法,看著選) ? 不用選擇座位,直接選擇給場次票檔和數(shù)量 提交訂單 ? 購票頁面點擊加票按鈕? 判斷XPATH是否存在 ? 頁

    2024年02月14日
    瀏覽(22)
  • 大麥搶票-Appium實現(xiàn)搶票軟件

    環(huán)境介紹:Python 3.9.1 自行下載appium和相關(guān)依賴 本代碼是無聊寫的,運行也正常,但是就是搶不到,搶票需要天時,地利,人和,不要用UI最好 我鏈接的是夜神虛擬模擬器 特此說明:所有的UI自動化搶票以個人見解,95%往上搶不到票

    2024年02月12日
    瀏覽(20)
  • Python 使用selenium 實現(xiàn)大麥網(wǎng)自動購票

    Python 使用selenium 實現(xiàn)大麥網(wǎng)自動購票

    前言 大麥網(wǎng)是中國綜合類現(xiàn)場娛樂票務(wù)營銷平臺,業(yè)務(wù)覆蓋演唱會、 話劇、音樂劇、體育賽事等領(lǐng)域 今天,我們要用代碼來實現(xiàn)他的購票過程 知識點: 面向?qū)ο缶幊?selenium 操作瀏覽器 pickle 保存和讀取Cookie實現(xiàn)免登陸 time 做延時操作 os 創(chuàng)建文件,判斷文件是否存在 開發(fā)環(huán)

    2023年04月11日
    瀏覽(28)
  • Python selenium 簡單的實現(xiàn)大麥網(wǎng)自動購票過程

    Python selenium 簡單的實現(xiàn)大麥網(wǎng)自動購票過程

    大麥網(wǎng)是中國綜合類現(xiàn)場娛樂票務(wù)營銷平臺,業(yè)務(wù)覆蓋演唱會、 話劇、音樂劇、體育賽事等領(lǐng)域 今天,我們要用代碼來實現(xiàn)他的購票過程 先來看看完成后的效果是怎么樣的 開發(fā)環(huán)境 版 本:anaconda(python3.8.8) 編輯器:pycharm 代碼實現(xiàn)步驟 實現(xiàn)免登陸 選座并且下單 初始化加

    2023年04月14日
    瀏覽(21)
  • python爬蟲(三)12306自動搶票--- selenium

    python爬蟲(三)12306自動搶票--- selenium

    一、 二 、 python爬蟲入門篇 https://blog.csdn.net/weixin_64050468/article/details/130583771?spm=1001.2014.3001.5501 文章目錄 前言 一、按照selenuim模塊+配置+可能報錯解釋 二、selenium部分代碼解讀 ?三、開始操作 搶票代碼 爬取數(shù)據(jù)代碼 后面文章主打用爬蟲整活了 邊學(xué)邊玩 win + r 打開cmd 然后輸入

    2024年02月08日
    瀏覽(32)
  • chatgpt賦能python:Python自動搶票:讓你的購票經(jīng)歷更加簡單便捷!

    隨著互聯(lián)網(wǎng)的發(fā)展,越來越多的人選擇在網(wǎng)上購買火車、飛機(jī)等交通工具的票。但是,一些火爆的車次、航班往往在開售后僅僅幾秒鐘內(nèi)就被搶完,讓很多想出行的人非??鄲馈T谶@種情況下,Python自動搶票就成了很多人的“救星”。 Python自動搶票是指利用Python編程軟件,通

    2024年02月15日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包