在这里插入图片描述
欢迎关注微信公众号:数据科学与艺术 作者WX:superhe199

标题:使用Java编写12306抢票程序(附完整代码)

导语:

12306是中国铁路客户服务中心提供的订票服务平台,每逢节假日、热门线路或者新上线车票的时候,往往一票难求。本文将使用Java编写一个12306抢票程序,帮助大家提高抢票效率。

准备工作:

为了编写这个抢票程序,你需要安装好Java开发环境,并确保你已经学习了基本的Java编程知识。此外,还需要安装好Maven构建工具,以便导入相关依赖。

代码实现:

  1. 首先,在你的项目中创建一个名为"12306Ticket"的Maven项目。
  2. 在pom.xml文件中添加以下依赖:
<dependencies>
    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.13.1</version>
    </dependency>
</dependencies>
  1. 创建一个名为"Ticket"的Java类,并添加以下代码:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;

public class Ticket {
    public static void main(String[] args) {
        try {
            Document doc = Jsoup.connect("https://kyfw.12306.cn/otn/leftTicket/queryZ?leftTicketDTO.train_date=2021-01-01&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=SHH&purpose_codes=ADULT").get();
            Elements elements = doc.select("div#queryLeftTable tbody tr");
            for (Element element : elements) {
                String trainNo = element.select("td:eq(0)").text();
                String trainName = element.select("td:eq(1)").text();
                String startStation = element.select("td:eq(2)").text();
                String endStation = element.select("td:eq(3)").text();
                String startTime = element.select("td:eq(8)").text();
                String endTime = element.select("td:eq(9)").text();

                System.out.println("车次:" + trainNo);
                System.out.println("列车名称:" + trainName);
                System.out.println("始发站:" + startStation);
                System.out.println("终点站:" + endStation);
                System.out.println("出发时间:" + startTime);
                System.out.println("到达时间:" + endTime);
                System.out.println("--------------------");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

代码解释:

首先,我们使用Jsoup库连接到12306的查询接口,并根据指定的日期、起始站和目的站查询车票信息。

  • 接着,我们使用CSS选择器选择车票信息所在的HTML元素,并从中提取车次、列车名称、始发站、终点站、出发时间和到达时间。
  • 最后,我们打印出查询结果。

运行结果:

运行以上代码,你将会看到如下形式的查询结果:

车次:G101
列车名称:高速
始发站:北京
终点站:上海
出发时间:08:00
到达时间:14:00
--------------------
车次:G102
列车名称:高速
始发站:上海
终点站:北京
出发时间:16:00
到达时间:22:00
--------------------
...(更多车票信息)

结语:
通过本文,使用Java编写12306抢票程序的基本方法,可根据个人需求进行代码的拓展和完善。当然,为了避免对12306服务器造成过大的负担和影响其他乘客的购票体验,建议在合理的范围内使用这个抢票程序。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐