大麦网抢票程序之大麦网网站分析

简介: 大麦网抢票程序之大麦网网站分析

大家好,我是石璞东。

今年元旦,我要和王璐瑶去北京看德云社的演出,所以需要购买两张德云社小园子的门票,按照网上的说法,官方渠道只有大麦网一家,而且元旦期间黄牛抢票肯定异常激烈,对于我这么一个又穷、手速又慢(顺便@一下研究生院,咳咳咳,奖学金和助学金该发了哈,交表那么积极,就是不给钱)的人来说,只能握住最后一根救命稻草了,那就是代码咯~

对的,你没看错,我们这次不去凑12306的热闹了,我们来搞一下大麦网。

工欲善其事,必先利其器,要实现某个网站抢票过程的自动化,我们必须对目标网站有足够清晰的了解,请看分析。

大麦网网站分析

大麦网网址:https://www.damai.cn/

同大部分主流网站一样,游客模式下,用户只能浏览网站的相关信息,如果需要进行买票等交互式操作,用户需要通过规定形式进行网站的登陆。
在这里插入图片描述

这里我们选择 扫码登录(请确保你的手机端已经安装 大麦 应用程序,并处于登陆状态),登陆之后我们打开浏览器控制台,选中 Application 选项卡,在控制台左侧 Storage 菜单中选中 Cookies 菜单,查看登陆成功之后的 Cookies 信息
在这里插入图片描述
我们知道,结合我们的上述需求,我们必须处于用户登陆状态下才可以进行后续选票、选座、核对订单、支付等操作,在游客模式下无法进行上述任何操作。

关于大麦网,这里插一句题外话,这几天我在重新写我大三时候爬过的网站的相关案例,最为深刻的感受就是:网站更新太快了,用一句话来形容爬虫与反爬虫,就是 道高一尺,魔高一丈,而类似大麦网、猫眼电影这些网站,他们的反爬措施几乎为零,我也是很纳闷呀,难道大麦网、猫眼电影等觉得他们的数据信息毫无价值吗?还是说他们的服务器能够承受得住这些流氓爬虫所带来的流量呢?甚至是说,他们已经非常大度了,犯不着去跟这些小蜘蛛计较呢?

抢票过程思路分析

  • 用户登录

通过上述对登陆状态与游客模式的分析,我们知道,要想顺利完成抢票的全过程,我们首先要做的第一步就是获取用户登陆的Cookies,并保证抢票过程始终处于登陆状态下;

  • 选择节目

当我们登陆之后,在输入框中输入关键词 德云社,进入到德云社各个小园子演出信息的列表详情页面中:
在这里插入图片描述
此时我们即可选择想要观看的演出场次,这里会有两种可能:

  1. 无票(票被抢完了)

在这里插入图片描述
该页面有一个显著的特点,会存在一个 提交缺货登记 的按钮,在该情况下,我们要做的就是不断请求目标页面,直到有新的演出票信息放出,即 提交缺货登记 按钮被替换成其他与购票相关的按钮(即第二种可能性中所提及的 选座购买 按钮)。

  1. 有票

在这里插入图片描述
该页面有一个显著的特点,就是页面中会有 选座购买 按钮,在该情况下,我们要做的就是在选择好日期、场次和票档之后,点击 选座购买 进入到 座位选择 页面。

  • 选座购买

在这里插入图片描述

大麦网只允许个人同时购买不超过2张演出票,该页面有一个显著的特点就是会有一个 确认选座 按钮,所以自动程序要帮助我们完成的就是,当用户选择好自己想要的位置之后,自动点击 确认选座 按钮,进入到 确认订单 页面;

  • 确认订单

在这里插入图片描述

当我们点击 确认选座 按钮之后,我们会进入到 确认订单 页面,受限于网速的影响,我们判断该页面是否加载完成的依据就是是否出现 观演人信息,当相关信息加载完成之后,我们就可以点击页面底部的 同意以上协议并提交订单 按钮提交咯。

  • 支付页面

在这里插入图片描述

进入到支付页面之后,我们同样需要等待网页完成加载,其判断标准就是 是否出现支付二维码,即上图网页源代码中所框选的id为container的div标签是否被渲染出来,若已经完成渲染,则代表已经抢票成功,用户所需要做的就是点击按钮并完成付款,如果没有出现,则重新开始下一轮的抢票。

好的,以上就是大麦网抢票的一个整体流程,小伙伴们学会了吗?快来梳理一下思路吧,在下一篇文章中,我们将介绍完成此案例必备的一些基础知识要点。

写在最后

为方便读者了解更为详细的信息,我为小伙伴们提供了三个我的官方渠道:

  • hahaCoder(微信公众号)
  • hahaAI(微信小程序)
  • hahaWebsite. (个人网站)
相关文章
|
API PHP 开发者
大麦网 API 接口商品详情信息 API
为了让更多用户了解到大麦网的商品详情,并能够方便地获取相关信息,大麦网推出了商品详情 API 接口。本文将介绍大麦网商品详情 API 接口的作用、使用方法和注意事项,帮助广大开发者更加方便地接入大麦网的产品。
|
JavaScript 前端开发 C++
初学Qt不会样式表怎么办,打包好的Qt样式表一键生成送给你。
很多人应该和我一样,想做界面才接触的Qt,结果就是做不出来华丽的界面,想给控件上个色?不会,百度半天,好不容易给控件添加了背景色,下一个控件又不会了,别急,这次福利来了,我将平时用到的样式表做了一个总结,并做了一个一键生成,调节数据就可以实时显示,里面包括了Label,LineEdit,PushButton,CheckBox,RadioButton,ScrollBar,Slider,Progressbar,Tabwidget,ToolBox,TabWidget控件的自定义。代码很简单,就是重复写槽函数,但其对于新手的学习很有帮助,避免了盲目,大量的通过百度数据拼接样式表。一来方便学习,所以参数
1297 1
初学Qt不会样式表怎么办,打包好的Qt样式表一键生成送给你。
|
Java Android开发 iOS开发
深入探讨移动操作系统的性能优化:安卓与iOS的对比分析
在现代移动设备中,操作系统的性能优化至关重要。本文从系统架构、内存管理、电池续航和应用程序运行效率等多个维度,深入探讨了安卓(Android)和iOS两大主流移动操作系统的优化策略及其实际效果,旨在为开发者和用户提供更清晰的了解和选择依据。
1030 27
|
数据采集 JSON 数据格式
Python大麦网演唱会数据爬取
Python大麦网演唱会数据爬取
795 0
|
10月前
|
Web App开发 大数据 应用服务中间件
什么是 HTTP Range请求(范围请求)
HTTP Range 请求是一种非常有用的 HTTP 功能,允许客户端请求资源的特定部分,从而提高传输效率和用户体验。通过合理使用 Range 请求,可以实现断点续传、视频流播放和按需加载等功能。了解并掌握 HTTP Range 请求的工作原理和应用场景,对开发高效的网络应用至关重要。
1030 16
|
测试技术 Android开发 Python
python | 大麦网抢票(移动端)
上篇文章写到了使用windows11打开安卓应用,那么使用python来抢大麦网票应该也是可以的吧。库使用的是`pyautogui`。
1572 0
python | 大麦网抢票(移动端)
|
API Python
Python实现大麦网抢票的四大关键技术点解析
随着互联网的普及和发展,线上购票已经成为人们生活中不可或缺的一部分。然而,在抢购热门演出门票时,往往会遇到抢票难、抢票快的问题,有时候一秒钟的延迟就意味着与心仪的演出擦肩而过。为了解决这个问题,技术爱好者们开始探索利用Python多线程技术来提高抢票效率。本文将介绍Python实现大麦网抢票的四大关键技术点,帮助读者了解抢票脚本的核心原理,并通过示例代码详细说明实现过程。
|
自然语言处理 关系型数据库 数据管理
阿里云百炼|析言GBI产品入门指导
析言基础入门的操作体验,带领大家一起探索阿里云百炼|析言GBI的奥秘。
3724 19
|
测试技术 数据安全/隐私保护 Python
大麦网抢票攻略:使用Python Selenium实现
大麦网抢票攻略:使用Python Selenium实现