女神想看演唱会买不到门票,还好我会Python,分分钟就抢到了

news/2024/10/21 3:28:55/

哈喽兄弟们,我是轻松~

天天分享干货,今天高低要教一下大家一波怎么做舔狗了!

事情是这样的,女神喜欢的歌星最近开演唱会,半夜打电话给我说想去看,但是抢不到票了,让我给她想想办法。

当时我就轻蔑一笑,这点小事能难倒会Python的我?

当时我就写了一手抢票代码,连夜给女神和她男朋友抢了两张!

女神为了感谢我,还特地发了两张她跟男朋友秀恩爱的照片给我吃狗粮!!!

不说了,真是太开心了,趁着开心,赶紧给大家分享一下源码!

知识点

  • selenium 淘宝滑块处理
  • 抢购逻辑实现

必备环境

  • python 3.8
  • pycharm 专业版
  • 谷歌浏览器+谷歌驱动+selenium3.141.0
  • stealth.min.js

代码展示

我还录制了视频进行详细讲解,跟源代码一起打包好了,直接在文章最后名片拿

模块

import time
from info import PHONE, PASSWORD
from selenium import webdriver

拿到移动轨迹,模仿人的滑动行为,先匀加速后匀减速。

def get_tracks(distance):# 初速度v = 5# 单位时间为0.2s来统计轨迹,轨迹即0.2内的位移t = 0.2# 位移/轨迹列表,列表内的一个元素代表0.2s的位移tracks = []# 当前的位移current = 0# 到达mid值开始减速mid = distance * 4 / 5while current < distance:if current < mid:# 加速度越小,单位时间的位移越小,模拟的轨迹就越多越详细a = 8else:a = -3# 初速度v0 = v# 0.2秒时间内的位移s = v0 * t + 0.5 * a * (t ** 2)# 当前的位置current += s# 添加到轨迹列表tracks.append(round(s))# 速度已经达到v,该速度作为下次的初速度v = v0 + a * treturn tracks

登陆

# 1.1 打开浏览器
driver = webdriver.Chrome(options=options)
f = open('stealth.min.js', mode='r', encoding='utf-8').read()
# 移除selenium当中爬虫的特征
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': f})
# 1.2 打开登陆网页
driver.get(login_url)
# 1.3 输入账号, 输入密码, 点击登陆 (滑块)
try:# 进入内嵌页面driver.switch_to.frame(0)# 账号输入框: #fm-login-iddriver.find_element_by_css_selector('#fm-login-id').send_keys(PHONE)# 密码输入框: #fm-login-passworddriver.find_element_by_css_selector('#fm-login-password').send_keys(PASSWORD)time.sleep(1)# 为什么会出现滑块, 用selenium打开的浏览器, 和正常用户打开的浏览器不同# 过滑块driver.switch_to.frame(0)slider = driver.find_element_by_css_selector('#nc_1_n1z')# 让鼠标执行 点击并且保持按住元素sliderwebdriver.ActionChains(driver).click_and_hold(on_element=slider).perform()# 横向移动鼠标webdriver.ActionChains(driver).move_by_offset(xoffset=260, yoffset=0).perform()# 松开鼠标webdriver.ActionChains(driver).pause(0.5).release().perform()driver.switch_to.parent_frame()
except:print("没有遇到滑块")
# 登陆按钮: #login-form > div.fm-btn > button
driver.find_element_by_css_selector('#login-form > div.fm-btn > button').click()
time.sleep(2)

下单

# 2.1 打开抢购页面
driver.get(target_url)
# 2.2 点击立即购买
driver.find_element_by_css_selector('.buybtn').click()
# 2.3 点击观影人
driver.find_element_by_css_selector('.ticket-buyer-select .next-checkbox-label').click()
# 2.4 点击同意并提交
driver.find_element_by_css_selector('.submit-wrapper .next-btn.next-btn-normal.next-btn-medium').click()
time.sleep(2)driver.switch_to.frame(0)
slider2 = driver.find_element_by_css_selector('#nc_1_n1z')
tracks = get_tracks(300)  # 剩下的50%在模拟移动
webdriver.ActionChains(driver).click_and_hold(on_element=slider2).perform()
for x in tracks:webdriver.ActionChains(driver).move_by_offset(xoffset=x, yoffset=0).perform()
else:webdriver.ActionChains(driver).move_by_offset(xoffset=2, yoffset=0).perform()
webdriver.ActionChains(driver).pause(0.5).release().perform()

JS部分太长了,影响阅读,我就不贴出来了,直接文章最底部点名片领取。

今天的内容就到这里结束了,我得继续舔女神去了!

觉得有帮助的话,顺手点个关注呗~


http://www.ppmy.cn/news/470088.html

相关文章

5年后 又听王菲98-99香港唱游大世界演唱会

大学时候两盒磁带陪伴了我很久&#xff0c;高中毕业时错过了那两张CD&#xff0c;再也没有遇到。在eMule上下载到了dvdrip&#xff0c;可惜音效很差&#xff0c;还是很容易被她的《梦醒了》、《红豆》、《我愿意》所感动&#xff0c;可惜只通过eMule在香港搜索到了mp3&#xff…

什么是云游戏?和普通游戏有什么区别?

自上世纪七十年代的电子游戏第一次出现&#xff0c;到现在发展的端游、页游和手游等&#xff0c;游戏也增加至成百上千种。游戏行业的迅速发展&#xff0c;给许多人提供了就业岗位&#xff0c;带动了经济的发展。有很多接触过游戏的人都不知道云游戏是什么&#xff0c;今天小编…

标准低代码平台的五大核心能力

低代码的主要作用是降低应用开发的准入门槛&#xff0c;赋能不同角色人员&#xff0c;让开发者利 用图形化界面&#xff0c;通过拖拉拽操作&#xff0c;以“搭积木”的方式快速开发软件应用&#xff0c;减少重复的 基础搭建工作。中国信通院基于低代码无代码推进中心的研究工作…

【高危】Apache Nifi JMS组件存在JNDI反序列化漏洞

漏洞描述 Apache NiFi 是一个开源的数据流处理和自动化工具&#xff0c; JndiJmsConnectionFactoryProvider 控制器组件用于配置 JMS 连接地址。 Apache NiFi 1.8.0 至 1.21.0 版本中&#xff0c;由于 JndiJmsConnectionFactoryProvider 控制器服务允许已授权的用户配置 URL…

探究设备管理系统在工业领域的应用

在现代工业领域&#xff0c;设备是生产过程中至关重要的组成部分。有效管理和维护设备对于保障生产的连续性、提高生产效率和降低成本至关重要。而设备管理系统的引入为企业提供了一种综合性的解决方案&#xff0c;能够全面监控、维护和优化设备的运行状态。本文将探讨设备管理…

【严重】GeoServer 存在 sql 注入漏洞(POC已公开)

漏洞描述 GeoServer是一款开源地图服务器&#xff0c;主要用于发布、共享和处理各种地理空间数据。 在GeoServer 的受影响版本中由于未对用户传入的 CQL_FILTER参数进行安全校验&#xff0c;在以数据库作为数据存储时&#xff0c;攻击者可构造攻击语句&#xff0c;绕过GeoSer…

Mac配置Android addr2line环境变量以及使用

1.首先进入终端 2.下面这个指令进入vim编辑器&#xff0c;就可以修改环境变量 vim ./.bash_profile3.按i进入insert模式 4.输入路径&#xff1a; arm32: export PATH${PATH}:/Users/xianquan/Library/Android/sdk/ndk/21.1.6352462/toolchains/arm-linux-androideabi-4.9/p…

【python】四舍五入保留N位小数,截断保留小数

目录 一.环境 二.适用场景 三.具体方法代码及描述 1.方法一&#xff1a;numpy-around()方法&#xff0c;四舍五入 2.方法二&#xff1a;字符串格式化&#xff08;有两种方式&#xff0c;均为四舍五入&#xff09;【推荐】 1&#xff09;%.4f 法 2) {:.4f} 法 3.方法三…