下面是详细的攻略:
手把手教你用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技术站