Python自动化 —— 大麦网自动抢购原价演唱会门票_大麦抢票代码(1)

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

在这里插入图片描述
最近,演唱会的举办越来越多,刚好我的一位同学喜欢听演唱会,就问我能不能帮他写一个自动抢演唱会门票的脚步,小编花了一个星期的时间研究和实践,成功写了一个简易版的自动抢票脚步。今天,我就分享一下我在写脚步中的过程体会给大家。

希望我的文章能给你带来帮助,如果能帮助到你,希望你能给小编点个赞和关注,你的赞是小编继续写作的动力(=^ ^=)

完整的源代码已经打包好了,文末可领取

保持会话方法

想要多次重复的进行自动化抢票,最主要的就是要解决每次都要登录的问题,因此每次登录的时候都需要以账号登录,想要每次都用账号登录,那必须使用登录后的cookie进行操作。

即:服务的$ _COOKIE函数中记录了你的cookie,那你就可以直接调用登录,如果没有就需要人工登录了,登录了之后,二次访问界面就能把自己的 cookie 保存到$_COOKIE函数。但是 cookie 登录存在问题,就是 cookie 涉及过期问题,所以可能隔一段时间就要手动重新登录进行cookie 保存了

登录账号:

    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'):
                self.set_cookies()   # 没有文件的情况下,登录一下


学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!



### 一、Python所有方向的学习路线



Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。



![](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)



### 二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。



![](https://img-blog.csdnimg.cn/img_convert/8c4513c1a906b72cbf93031e6781512b.png)



### 三、全套PDF电子书



书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

![](https://img-blog.csdnimg.cn/img_convert/46506ae54be168b93cf63939786134ca.png)



### 四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。



![](https://img-blog.csdnimg.cn/afc935d834c5452090670f48eda180e0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56iL5bqP5aqb56eD56eD,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)



### 五、实战案例



光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。



![](https://img-blog.csdnimg.cn/img_convert/252731a671c1fb70aad5355a2c5eeff0.png)



### 六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。



![](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)  

![](https://img-blog.csdnimg.cn/img_convert/d2d978bb523c810abca3abe69e09bc1a.png)




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618317507)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 17
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抢票工具的实现需要用到自动化测试工具Selenium和浏览器驱动ChromeDriver。以下是基于Python大麦自动抢票工具实现代码: ```python from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys import time # 抢票链接、账号密码以及票数 url = 'https://detail.damai.cn/item.htm?spm=a2oeg.search_category.0.0.2f4b4f80pLNEgW&id=XXXXX' # 抢票链接 username = 'XXXXX' # 大麦账号 password = 'XXXXX' # 大麦密码 ticket_num = 1 # 抢票数量 # Chrome浏览器设置 options = webdriver.ChromeOptions() options.add_argument('--headless') options.add_argument('--disable-gpu') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') options.add_argument('--disable-extensions') options.add_argument('--disable-infobars') options.add_argument('--disable-popup-blocking') options.add_argument('--disable-default-apps') options.add_argument('--disable-plugins') options.add_argument('--incognito') options.add_argument('--start-maximized') options.add_argument('--disable-translate') options.add_argument('--disable-file-system') options.add_argument('--disable-blink-features=AutomationControlled') options.add_argument('--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36') driver = webdriver.Chrome(options=options) wait = WebDriverWait(driver, 10) # 打开页并登录 driver.get(url) driver.maximize_window() time.sleep(1) login = wait.until(EC.presence_of_element_located((By.XPATH, '//a[@class="btn btn-blue"]'))) ActionChains(driver).move_to_element(login).click().perform() username_input = driver.find_element_by_xpath('//input[@id="login_email"]') password_input = driver.find_element_by_xpath('//input[@id="login_password"]') username_input.send_keys(username) password_input.send_keys(password) time.sleep(1) login_button = driver.find_element_by_xpath('//a[@class="btn-login"]') ActionChains(driver).move_to_element(login_button).click().perform() # 抢票 while True: try: buy_button = wait.until(EC.presence_of_element_located((By.XPATH, '//a[@class="buybtn"]'))) if buy_button.text == '即将开抢': print('抢票未开始,等待中...') time.sleep(1) elif buy_button.text == '立即预订': print('抢票已开始,开始尝试预订...') buy_button.click() break except: pass # 选择票数 if ticket_num > 1: select_ticket_button = wait.until(EC.presence_of_element_located((By.XPATH, '//div[@class="cafe-c-input-number-handler cafe-c-input-number-handler-up"]'))) for i in range(ticket_num-1): select_ticket_button.click() # 提交订单 submit_button = wait.until(EC.presence_of_element_located((By.XPATH, '//a[@class="cafe-c-button cafe-c-button--lred J_Go"]'))) ActionChains(driver).move_to_element(submit_button).click().perform() time.sleep(3) confirm_button = wait.until(EC.presence_of_element_located((By.XPATH, '//div[@class="mod-common-dialog J_Mod"]/div[@class="content"]/a'))) ActionChains(driver).move_to_element(confirm_button).click().perform() print('抢票成功!') ``` 其中, XXXXX 需要根据实际情况进行替换。使用时将代码复制到Python文件中,在命令行中运行即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值