代码 python爬虫 爬取12306订票
时间: 2023-10-08 11:05:07 浏览: 115
好的,下面是一个简单的Python爬虫程序,可以用来爬取12306的订票信息:
```python
import requests
import json
# 设置请求的URL和请求头信息
url = "https://kyfw.12306.cn/otn/leftTicket/queryZ"
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',
'Referer': 'https://kyfw.12306.cn/otn/leftTicket/init'
}
# 设置请求参数
from_station = input("请输入出发地:")
to_station = input("请输入目的地:")
train_date = input("请输入日期(格式:yyyy-mm-dd):")
params = {
'leftTicketDTO.train_date': train_date,
'leftTicketDTO.from_station': from_station,
'leftTicketDTO.to_station': to_station,
'purpose_codes': 'ADULT'
}
# 发送请求并解析返回结果
response = requests.get(url, params=params, headers=headers)
result = json.loads(response.content.decode('utf-8'))
# 输出车次信息
for item in result['data']['result']:
train_info = item.split('|')
print("车次:%s,出发时间:%s,到达时间:%s,历时:%s,一等座:%s,二等座:%s" % (train_info[3], train_info[8], train_info[9], train_info[10], train_info[28], train_info[29]))
```
这段代码会首先向12306发送一个GET请求,获取指定日期、出发地、目的地的车次信息,然后解析返回的JSON格式数据,并输出车次信息,包括车次、出发时间、到达时间、历时和一等座、二等座的余票信息。
阅读全文