python12306的代码
时间: 2024-09-17 18:04:28 浏览: 89
Python的12306是一个用于操作中国铁路12306网站的自动化工具,通常利用requests库发送HTTP请求,并可能通过BeautifulSoup或lxml等库解析HTML页面。以下是一个简单的示例,展示如何使用Python获取火车票信息:
```python
import requests
from bs4 import BeautifulSoup
def get_train_info(city_from, city_to, date):
url = f"https://kyfw.12306.cn/otn/leftTicket/init?leftTicketDTO.train_date={date}&leftTicketDTO.from_station={city_from}&leftTicketDTO.to_station={city_to}"
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'
}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
# 解析并提取需要的信息
train_list = soup.find_all('div', class_='train-list') # 根据实际HTML结构定位元素
for train in train_list:
train_no = train.find('span', class_='t-trainno').text # 火车编号
departure_time = train.find('span', class_='t-departure').text # 出发时间
arrival_time = train.find('span', class_='t-arrival').text # 到达时间
print(f"车次: {train_no}, 出发时间: {departure_time}, 到达时间: {arrival_time}")
# 使用方法
get_train_info('北京', '上海', '2023-05-01')
```
请注意,这个代码只是一个基础示例,真实的12306网站有反爬虫机制,频繁抓取数据可能会被封IP,因此在实际应用中需要考虑代理、登录验证以及异常处理等问题。而且,官方并不支持直接爬取购票信息,更多时候用于学习网络请求和HTML解析。
阅读全文