python爬虫实现12306火车票查询
时间: 2023-11-08 09:15:43 浏览: 98
您可以使用Python的requests库和BeautifulSoup库来实现12306火车票查询的爬虫。以下是一个简单的示例代码:
```python
import requests
from bs4 import BeautifulSoup
def search_train_tickets(from_station, to_station, date):
# 构造URL
url = 'https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date={}&leftTicketDTO.from_station={}&leftTicketDTO.to_station={}&purpose_codes=ADULT'.format(date, from_station, to_station)
# 发送GET请求
response = requests.get(url)
# 解析JSON数据
data = response.json()
# 提取车次信息
train_list = data['data']['result']
# 输出车次信息
for train in train_list:
train_info = train.split('|')
print('车次:', train_info[3])
print('出发站:', train_info[6])
print('到达站:', train_info[7])
print('出发时间:', train_info[8])
print('到达时间:', train_info[9])
print('历时:', train_info[10])
print('----------------------------')
# 示例用法
search_train_tickets('北京', '上海', '2022-01-01')
```
这段代码首先构造了查询URL,然后发送GET请求获取到JSON格式的数据。接着使用BeautifulSoup库解析JSON数据,并提取出车次信息。最后,将车次信息打印出来。
请注意,12306网站有反爬机制,可能需要应对验证码或其他限制。此示例代码仅用于演示基本原理,具体实现可能需要根据实际情况进行调整和改进。