12036抢票软件实现(一)

近期好多人私信我,能不能需要分享完整代码。为了帮助大家,我以及将代码整理和教学视频我已经上传了CSDN,欢迎私信交流,共同学习共同进步:下载地址 求给五星好评,谢谢啦!一.先展示一下运行代码后的执行效果:1.代码编译部分界面2.登录12306官网,查看自己购票信息:可以100%确定,运行代码后票抢到票,付款之后,它就是你的了。补充说明一下:1. 编译器里面展示的...
摘要由CSDN通过智能技术生成

近期好多人私信我,能不能需要分享完整代码。为了帮助大家,我以及将代码整理和教学视频我已经上传了CSDN,欢迎私信交流,共同学习共同进步:下载地址 求给五星好评,谢谢啦!

一.先展示一下运行代码后的执行效果:

1.代码编译部分界面

2.登录12306官网,查看自己购票信息:

可以100%确定,运行代码后票抢到票,付款之后,它就是你的了。

补充说明一下:

1. 编译器里面展示的信息,其实我只是当时用于观察我运行的整个过程,你完全可以去掉那些打印的消息。如果你已经确

定了购买人的信息以及车票时间和地点,可以将个人账号密码信息连同购票信息一并写入文件夹中,到时候通过读取文件

内容,就可以自动获取需要的内容。

2.  需要记住几点:

             12306设定的每天只允许退票3次的操作;

             购票操作只允许在每日6:00至23:00之间;

             访问过于频繁会被12306禁IP

        所以调试的时间记得把握好。在进行下单的操作时,切莫频繁登录账号测试程序,退票太多当天就没法再测试下单步

骤了。至于第三条注意事项,本教程的抢票模式是不会出现此类情况,请放心。

3.  此程序是在票源充足的情况下执行抢票,没有用到代理池等爬虫技术,学习门槛很低。如果有童鞋想真正实现抢票(即

不断提交单,直至余票为零),需要考虑设置访问请求时间,防止过于频繁访问12306。

4.本教程目的在于实现用户登录、余票查询、提交订单三大步骤,所以很多地方都没有来得及优化,例如没有实现项目管

理、功能划分等等,有时间我会回过头进行优化,再次发布代码供大家学习。

 

二.前期准备

1.用到的开发工具:Pycharm 、火狐浏览器

(火狐浏览器是为了确保每次提交请求后,都能到抓包。360浏览器和谷歌浏览器在提交订单过程中,有些包抓取不到,不利于你

分析整个过程)

2.pycharm版本:Python2.7

(注:此处很多小伙伴肯定很烦恼为啥还在用pycharm2.7开发,其实只是我个人习惯而已,完全可以通过修改一些包的导入方式以

及输入输出函数的格式,就可以发布python3.6的版本)

3. 学习基础 :Python基础网络编程基础;(仅有python基础也可以弄明白整个实现过程)

 

开始项目,go!

1.用户登录

1.新建名为 user.py 文件,存放登录名和密码信息:


                
  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抢票软件实现原理是通过程序模拟用户手动操作,自动完成购票流程。以下是一个简单的抢票脚本示例: ```python import time import random from selenium import webdriver # 设置浏览器驱动 driver = webdriver.Chrome() # 打开目标网站 driver.get('https://www.xxx.com') # 登录账号 driver.find_element_by_id('username').send_keys('your_username') driver.find_element_by_id('password').send_keys('your_password') driver.find_element_by_css_selector('.login-button').click() # 进入购票页面 driver.find_element_by_css_selector('.buy-ticket-button').click() driver.find_element_by_css_selector('.ticket-select').click() # 选择座位 driver.find_element_by_xpath('//div[text()="座位类型"]/following-sibling::div').click() driver.find_element_by_xpath('//li[text()="硬座"]').click() driver.find_element_by_xpath('//div[text()="车次"]/following-sibling::div').click() driver.find_element_by_xpath('//li[text()="G1234"]').click() driver.find_element_by_xpath('//div[text()="出发日期"]/following-sibling::div').click() driver.find_element_by_xpath('//li[text()="2022-01-01"]').click() driver.find_element_by_xpath('//div[text()="出发站"]/following-sibling::div').click() driver.find_element_by_xpath('//li[text()="北京"]').click() driver.find_element_by_xpath('//div[text()="到达站"]/following-sibling::div').click() driver.find_element_by_xpath('//li[text()="上海"]').click() driver.find_element_by_css_selector('.search-button').click() # 抢票 while True: try: driver.find_element_by_css_selector('.submit-button').click() print('抢票成功!') break except: print('抢票失败,重新尝试...') time.sleep(random.randint(1, 5)) # 关闭浏览器 driver.quit() ``` 需要注意的是,抢票软件一般会受到网站反爬虫机制的限制,如果使用过于频繁或过于规律的操作,有可能会触发反爬虫机制,导致账号被封禁或购票失败。因此,在编写抢票软件时,需要合理控制请求频率和随机化操作,以降低被封禁的风险。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值