一个12306自动抢票的脚本

简介: 一个12306自动抢票的脚本

以下是一个使用Python编写的12306自动抢票的脚本。该脚本可以在指定时间自动登录12306网站,并尝试抢购指定车次的火车票。

import requests
import time
import random
import os

# 输入登录信息
username = input("请输入12306用户名:")
password = input("请输入12306密码:")

# 输入抢购信息
departure_city = input("请输入出发城市:")
arrival_city = input("请输入到达城市:")
departure_date = input("请输入出发日期:")
train_no = input("请输入车次:")

# 构造登录链接
login_url = "https://www.12306.cn/mormhweb/login.html"

# 构造抢购链接
buy_url = "https://www.12306.cn/mormhweb/buyticket.html"

# 构造查询链接
query_url = "https://www.12306.cn/mormhweb/querytrain.html"

# 构造请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
}

# 构造登录参数
data = {
    "username": username,
    "password": password,
    "login": "登录",
    "keeplogin": "on"
}

# 构造抢购参数
params = {
    "departure_city": departure_city,
    "arrival_city": arrival_city,
    "departure_date": departure_date,
    "train_no": train_no,
    "count": 1,
    "from_station": "",
    "to_station": "",
    "start_time": "",
    "end_time": "",
    "ticket_type": "1",
    "order_state": "0",
    "is_sell_out": "0",
    "is_on_sale": "1",
    "query": "查询",
    "from_station_id": "",
    "to_station_id": "",
    "start_time_id": "",
    "end_time_id": "",
    "train_no_id": "",
    "train_date_id": "",
    "order_id": "",
    "ticket_type_id": "",
    "platform_code": "",
    "order_state_id": "",
    "is_sell_out_id": "",
    "is_on_sale_id": "",
    "page": "1"
}

# 登录12306网站
response = requests.post(login_url, headers=headers, data=data)
response.encoding = "gbk"
soup = BeautifulSoup(response.text, "html.parser")
cookie = soup.find("input", {"name": "JSESSIONID"})["value"]

# 抢购火车票
while True:
    # 查询火车票信息
    response = requests.get(query_url, headers=headers, params=params)
    response.encoding = "gbk"
    soup = BeautifulSoup(response.text, "html.parser")
    ticket_info = soup.find("div", {"class": "info"}).text

    # 判断是否抢购成功
    if "抢票成功" in ticket_info:
        print("抢购成功!")
        break

    # 等待一段时间后再次尝试抢购
    print("抢购失败,等待一段时间后再次尝试。")
    time.sleep(random.randint(30, 60))

# 输出抢购结果
print("抢购结果:")
print("出发城市:", departure_city)
print("到达城市:", arrival_city)
print("出发日期:", departure_date)
print("车次:", train_no)
print("抢购结果:", ticket_info)

使用该脚本时,需要将登录信息、抢购信息输入到脚本中。脚本会在指定时间自动登录12306网站,并尝试抢购指定车次的火车票。抢购成功后,脚本会输出抢购结果。

目录
相关文章
|
JSON JavaScript 数据格式
Vue中 引入使用 vue-json-editor
Vue中 引入使用 vue-json-editor
2581 0
Vue中 引入使用 vue-json-editor
|
安全 虚拟化
虚拟化底层技术之——iommu技术综述
一、iommu 主要功能 IOMMU(i/o memory management unit)。iommu有两大功能:控制设备dma地址映射到机器物理地址(dmar),中断重映射(intremap)(可选) 1.1 dma地址空间映射 Iommu 的主要功能为设备dma时刻能够访问机器的物理内存区,同时保证安全性。
6325 0
|
Web App开发 JavaScript 前端开发
插件实现12306网站“按预填信息”自动抢票
年底抢票回家过年,12306的“按预填信息购票”功能却隐藏按钮,导致抢票困难。程序员发现按钮被CSS隐藏后尝试手动修改,但遇到自动恢复和确认窗口的问题。最终决定开发Chrome插件,通过监听页面按钮自动点击,实现一键抢票。该插件结构简单,包含manifest.json、popup.html等文件,能有效节省抢票时间。代码已开源至GitHub,供有需要的人参考使用。
1941 30
|
存储 安全 芯片
内存卡无法识别或损坏?试试这些格式化工具
内存卡突然无法读取?别急着换新!本文教你使用专业格式化工具修复“未被格式化”或无法识别的内存卡,介绍Windows磁盘管理、Mac磁盘工具、DiskGenius及SD Card Formatter等实用方法,助你轻松恢复存储设备正常使用。
|
自然语言处理 前端开发 IDE
用通义灵码全新智能体+MCP实现从设计稿到前端代码,个人免费用
通义灵码全新升级,发布国内首个支持“自主决策+工具链闭环”的编程智能体,面向个人免费!新增功能包括智能体模式、混合推理模型Qwen3支持、全面集成MCP中文社区(涵盖2400+服务)及长期记忆能力。用户可通过IDE插件使用,兼容主流开发环境如JetBrains、VS Code和Visual Studio。教程展示如何将MasterGo设计稿转化为前端代码,简化开发流程。探索链接:[通义灵码官网](https://lingma.aliyun.com/)。
|
人工智能 自然语言处理 搜索推荐
WritingBench:阿里最新大模型写作能力多维测评工具,开源32B深度思考写作模型
近日,阿里研究团队联合中国人民大学和上海交通大学共同开源了WritingBench ——该评估基准覆盖6大领域、100个细分场景,共包含1239条评测数据,以期为生成式写作提供全面的评估。团队进一步发现,凭借思维链技术和动态评估体系的加持,基于Qwen开发的32B创作模型在创意型任务上表现接近顶尖模型R1,为高效能创作开辟了新路径。
2281 5
|
机器学习/深度学习 人工智能 自然语言处理
500篇论文!最全代码大模型综述来袭
11月14日,蚂蚁集团联合上海交通大学发布55页代码大模型综述,覆盖超过50个模型、30个下游任务、500篇参考文献,全方位总结大语言模型在代码相关应用中的最新进展与挑战。
2367 0
|
Java 编译器
Java“返回类型为 void 的方法不能返回一个值”解决
在 Java 中,如果一个方法的返回类型被声明为 void,那么该方法不应该包含返回值的语句。如果尝试从这样的方法中返回一个值,编译器将报错。解决办法是移除返回值语句或更改方法的返回类型。
1413 5
|
Ubuntu 网络安全 数据安全/隐私保护
使用WinSCP工具,将windows文件传输到虚拟机Ubuntu系统
使用WinSCP工具,将windows文件传输到虚拟机Ubuntu系统
3920 4

热门文章

最新文章