一个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网站,并尝试抢购指定车次的火车票。抢购成功后,脚本会输出抢购结果。

目录
相关文章
|
6月前
简便的方法开线程干活并且出现等待提示
简便的方法开线程干活并且出现等待提示
35 3
|
6月前
码栈运行程序报错
摘要: 在执行Taobao.CodeStore模块的代码时,遇到一个进程启动问题。具体发生在`Process.StartWithCreateProcess`方法内,随后调用了`Process.Start`,再经由`ProcessExt.StartProcess`和`NewAppDevelopControl.CompileScript`,最终触发点在UI中间控件`RunControl`的简单按钮点击事件`simpleButton_Click`。问题表现为无法正常启动进程。需查找并修复导致进程启动失败的原因。
43 0
|
6月前
|
数据采集 JavaScript 前端开发
Shell脚本自动抢购火车票
Shell脚本自动抢购火车票
115 3
|
数据安全/隐私保护
搞个脚本—自动赚猿分(脱壳篇)
搞个脚本—自动赚猿分(脱壳篇)
|
6月前
|
弹性计算 安全 机器人
定时提醒再也不用担心忘记啦
好记性不如烂笔头,烂笔头不如靠谱的自动化~~~正在寻找自动化流程编排工具或定时任务工具的朋友们赶紧看过来,为你介绍一款简单配置即可实现自动化定时提醒的平台阿里云计算巢AppFLow。
244 0
|
6月前
|
存储 安全 计算机视觉
用 Python 脚本实现电脑唤醒后自动拍照 截屏并发邮件通知
用 Python 脚本实现电脑唤醒后自动拍照 截屏并发邮件通知
|
Shell
shell脚本写一个自动抢火车票的脚本
shell脚本写一个自动抢火车票的脚本
237 1
|
人工智能 Cloud Native Devops
也许是时候停止编写详细的操作手册了
也许是时候停止编写详细的操作手册了
62 0
|
Web App开发 小程序 开发者
三分钟创建一个小程序-每天三分钟玩转小程序 1
三分钟创建一个小程序-每天三分钟玩转小程序 1
三分钟创建一个小程序-每天三分钟玩转小程序 1
|
网络协议 Linux
工作总结之服务器时间不同步导致平台验证失败及Linux系统时间同步方法
在Windwos中,系统时间的设置很简单,界面操作,通俗易懂,而且设置后,重启,关机都没关系。系统时间会自动保存在BIOS时钟里面,启动计算机的时候,系统会自动在BIOS里面取硬件时间,以保证时间的不间断。
308 0
工作总结之服务器时间不同步导致平台验证失败及Linux系统时间同步方法