python抢火车票怎么写

使用 python 抢火车票的步骤如下:安装 requests 和 beautifulsoup4 库。获取 12306 网站的 cookies。查询车票信息。当有车票可用时,提交订单。

python抢火车票怎么写

Python抢火车票

如何使用 Python 抢火车票

1. 安装必要的库

首先,你需要安装以下库:

requests
beautifulsoup4
schedule

2. 获取cookies

你将需要一份有效的 12306 网站 cookies。你可以使用以下代码获取它:

import requests

url = 'https://kyfw.12306.cn/otn/leftTicket/init'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'
}
response = requests.get(url, headers=headers)
cookies = response.cookies

3. 查询车票

接下来,你需要查询车票信息。你可以使用以下代码:

import schedule

from_station = '北京'
to_station = '上海'
train_date = '2022-06-10'

def query_tickets():
    url = 'https://kyfw.12306.cn/otn/leftTicket/query'
    params = {
        'leftTicketDTO.train_date': train_date,
        'leftTicketDTO.from_station': from_station,
        'leftTicketDTO.to_station': to_station,
        'purpose_codes': 'ADULT'
    }
    response = requests.get(url, params=params, cookies=cookies)
    result = response.json()
    return result['data']['result']

schedule.every(1).second.do(query_tickets)

4. 提交订单

当有车票可用时,你可以使用以下代码提交订单:

import schedule

def order_tickets():
    url = 'https://kyfw.12306.cn/otn/leftTicket/submitOrderRequest'
    data = {
        'secretStr': '',  # 需要填写 secretStr 字段,可以参考官方文档
        'train_date': train_date,
        'back_train_date': train_date,
        'tour_flag': 'dc',
        'purpose_codes': '00',
        'query_from_station_name': from_station,
        'query_to_station_name': to_station,
        'undefined': ''
    }
    headers = {
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
    }
    response = requests.post(url, data=data, headers=headers, cookies=cookies)
    result = response.json()
    return result

schedule.every(1).second.do(order_tickets)

注意:

  • 该代码只是一个示例,你可能需要根据你的实际情况进行修改。
  • 使用该代码可能会违反 12306 网站的条款和条件,请谨慎使用。

以上就是python抢火车票怎么写的详细内容,更多请关注其它相关文章!