手把手教你用python抢票回家过年(代码简单)

下面是详细的攻略:

手把手教你用Python抢票回家过年

在Python中,我们可以使用requests和BeautifulSoup模块实现抢票功能。本文将手把手教你用Python抢票回家过年的过程,并提供两个示例说明。

实现过程

在实现抢票功能的过程中,我们需要模拟浏览器发送请求,并解析返回的HTML页面。下面是一个简单的示例代码:

import requests
from bs4 import BeautifulSoup

url = "https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2023-01-01&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=SHH&purpose_codes=ADULT"

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.36"
}

response = requests.get(url, headers=headers)
response.encoding = "utf-8"

soup = BeautifulSoup(response.text, 'html.parser')
tickets = soup.select("#queryLeftTable tr[data-train-name]")
for ticket in tickets:
    train_number = ticket.select(".number")[0].get_text()
    start_time = ticket.select(".start-time")[0].get_text()
    end_time = ticket.select(".end-time")[0].get_text()
    print(train_number, start_time, end_time)

在上面的代码中,我们使用requests模块发送请求,并设置请求头部信息。然后,我们解析返回的HTML页面,并提取需要的信息。最后,我们输出车次、出发时间和到达时间。

示例说明

下面是两个用Python抢票回家过年的示例,用于演示其用法:

示例1:查询指定日期、出发站和到达站的车次信息

import requests
from bs4 import BeautifulSoup

url = "https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2023-01-01&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=SHH&purpose_codes=ADULT"

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.36"
}

response = requests.get(url, headers=headers)
response.encoding = "utf-8"

soup = BeautifulSoup(response.text, 'html.parser')
tickets = soup.select("#queryLeftTable tr[data-train-name]")
for ticket in tickets:
    train_number = ticket.select(".number")[0].get_text()
    start_time = ticket.select(".start-time")[0].get_text()
    end_time = ticket.select(".end-time")[0].get_text()
    print(train_number, start_time, end_time)

在上面的代码中,我们查询了2023年1月1日从北京到上海的车次信息,并输出车次、出发时间和到达时间。

示例2:查询指定日期、出发站和到达站的余票信息

import requests
from bs4 import BeautifulSoup

url = "https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2023-01-01&leftTicketDTO.from_station=BJP&leftTicketDTO.to_station=SHH&purpose_codes=ADULT"

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.36"
}

response = requests.get(url, headers=headers)
response.encoding = "utf-8"

soup = BeautifulSoup(response.text, 'html.parser')
tickets = soup.select("#queryLeftTable tr[data-train-name]")
for ticket in tickets:
    train_number = ticket.select(".number")[0].get_text()
    start_time = ticket.select(".start-time")[0].get_text()
    end_time = ticket.select(".end-time")[0].get_text()
    left_tickets = ticket.select(".no-br")[0].get_text()
    print(train_number, start_time, end_time, left_tickets)

在上面的代码中,我们查询了2023年1月1日从北京到上海的余票信息,并输出车次、出发时间、到达时间和余票数量。

总结

本文手把手教你用Python抢票回家过年的过程,并提供了两个示例说明。在实际开发中,我们可以根据需要修改请求的URL和请求头部信息,以实现查询不同的车次信息和余票信息。同时,我们还讲解了如何解析返回的HTML页面,并提取需要的信息。在实际应用中,我们可以根据需要选择适当的解析方法,以满足不同的需求。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:手把手教你用python抢票回家过年(代码简单) - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Python如何在循环内使用list.remove()

    以下是详细讲解“Python如何在循环内使用list.remove()”的完整攻略。 在Python中,可以使用list.remove()方法来删除列表中的元素。但是,在循环内使用list.remove()方法时,需要注意一些问题下面是一些常见的方法。 方法一:使用倒序循环 lst = [1, 2, 3, 4,5] for i in range(len(ls…

    python 2023年5月13日
    00
  • Python爬虫requests库多种用法实例

    以下是关于Python爬虫requests库多种用法实例的攻略: Python爬虫requests库多种用法实例 requests是Python中一个流行的HTTP库,可以用于向Web服务器发送HTTP请求和接收响应。以下是Python爬虫requests库多种用法实例: 发送GET请求 以下是使用requests发送GET请求的示例: import req…

    python 2023年5月14日
    00
  • Python 的 f-string 可以连接字符串与数字的原因解析

    标题:Python 的 f-string 可以连接字符串与数字的原因解析 F-string 是 Python3.6 中的一种字符串格式化方法,对于连接字符串和数字非常方便,以下是详细讲解。 知识背景 在 Python 中,字符串格式化可以使用相对简单的方法,例如使用 % 格式化字符串或使用 format() 方法。但是,自 Python 3.6 起,更简单,…

    python 2023年6月5日
    00
  • 使用Python实现简单的爬虫框架

    下面我会详细讲解如何使用Python实现简单的爬虫框架,在整个过程中,我们将会遵循一个完整的攻略步骤来进行。这里分为以下几个部分来讲解: 确定目标 & 安装必要的库 首先,我们需要明确爬取的目标网站,并且选择一个适合的爬虫库。在Python中,比较常用的爬虫库有Requests和BeautifulSoup4。前者常用于发送HTTP请求并获得响应,后者…

    python 2023年5月14日
    00
  • Python工程师面试必备25条知识点

    作为Python工程师,准备面试非常重要。以下是25条Python工程师面试必备知识点的详细攻略: 1. Python基础知识 在面试中,你需要展示你对Python的基础知识掌握情况。这包括变量、数据类型、控制流和函数等主题。 2. Python包管理器 Python包管理器可以帮助你轻松安装和维护Python工具和库。最流行的包管理器是pip,你需要了解如…

    python 2023年5月14日
    00
  • 如何利用python处理原始音频数据

    处理原始音频数据是一项重要任务,Python为处理音频的操作提供了一些库和工具,包括SciPy、NumPy、Soundfile等。下面提供一个完整攻略,来解释如何利用Python处理原始音频数据。 步骤1:导入所需的库 为了开始处理音频数据,我们需要先导入必要的库。Python中用于处理音频的一些常用库包括: numpy:处理数字信号 scipy:用于处理数…

    python 2023年5月14日
    00
  • Python实现SVM支持向量机的示例代码

    下面我来为你详细讲解Python实现SVM支持向量机的示例代码的完整攻略。 SVM简介 SVM(Support Vector Machine)是一种用于分类、回归以及异常检测的机器学习算法,它可以将数据集映射到高维空间中,从而将非线性问题转化为线性问题。SVM的核心是找到最大间隔超平面,这个过程就是优化超平面离支持向量最远的距离,而支持向量是离超平面最近的样…

    python 2023年5月23日
    00
  • python实操练习案例(六)

    下面是“python实操练习案例(六)”的完整攻略。 简介 本实操练习案例主要涉及到Python中常用的两种数据结构:树(Tree)和堆(Heap)。在本实操中,我们将深入学习这两种数据结构,了解它们的特性和在Python中的实现方式,并通过实际的案例操作,加深对它们的理解和使用技巧。 树(Tree) 什么是树(Tree) 在计算机科学中,树(Tree)是一…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部