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

目录
相关文章
|
2月前
|
Python
定时提醒程序
【9月更文挑战第10天】
52 9
|
6月前
简便的方法开线程干活并且出现等待提示
简便的方法开线程干活并且出现等待提示
35 3
|
6月前
|
数据采集 JavaScript 前端开发
Shell脚本自动抢购火车票
Shell脚本自动抢购火车票
112 3
|
数据安全/隐私保护
搞个脚本—自动赚猿分(脱壳篇)
搞个脚本—自动赚猿分(脱壳篇)
|
6月前
|
弹性计算 安全 机器人
定时提醒再也不用担心忘记啦
好记性不如烂笔头,烂笔头不如靠谱的自动化~~~正在寻找自动化流程编排工具或定时任务工具的朋友们赶紧看过来,为你介绍一款简单配置即可实现自动化定时提醒的平台阿里云计算巢AppFLow。
240 0
|
6月前
|
存储 安全 计算机视觉
用 Python 脚本实现电脑唤醒后自动拍照 截屏并发邮件通知
用 Python 脚本实现电脑唤醒后自动拍照 截屏并发邮件通知
|
Shell
shell脚本写一个自动抢火车票的脚本
shell脚本写一个自动抢火车票的脚本
234 1
|
Web App开发 小程序 开发者
三分钟创建一个小程序-每天三分钟玩转小程序 1
三分钟创建一个小程序-每天三分钟玩转小程序 1
三分钟创建一个小程序-每天三分钟玩转小程序 1
|
网络协议 Linux
工作总结之服务器时间不同步导致平台验证失败及Linux系统时间同步方法
在Windwos中,系统时间的设置很简单,界面操作,通俗易懂,而且设置后,重启,关机都没关系。系统时间会自动保存在BIOS时钟里面,启动计算机的时候,系统会自动在BIOS里面取硬件时间,以保证时间的不间断。
298 0
工作总结之服务器时间不同步导致平台验证失败及Linux系统时间同步方法
|
数据安全/隐私保护 Windows
【转载】解决windows服务器上定时任务执行时报0x1错误,但是手动执行顺利完成
最近修改定时任务重新部署后,定时运行后运行结果为0x1,但是手动执行后,任务可以顺利完成。 windows官网解释如下: 0x0: 操作已成功完成 0x1: 调用的函数不正确或调用了未知函数。
3270 0