python 爬取火车票价格
时间: 2023-12-25 08:30:12 浏览: 99
以下是使用Python爬取火车票价格的示例代码:
```python
import requests
import json
# 发送请求获取火车票信息
url = "https://www.example.com/train_tickets"
response = requests.get(url)
# 解析返回的JSON数据
data = json.loads(response.text)
# 获取火车票价格
prices = data['prices']
# 打印火车票价格
for price in prices:
print(price)
```
请注意,上述代码仅为示例,实际的URL和数据结构可能会有所不同。您需要根据实际情况进行相应的修改。
相关问题
用Python的requests和Beautiful Soup库爬取火车票代码
好的,我可以帮您解答这个问题。以下是Python代码示例:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date=2020-10-01&leftTicketDTO.from_station=SHH&leftTicketDTO.to_station=BJP&purpose_codes=ADULT'
response = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})
soup = BeautifulSoup(response.content, 'html.parser')
tickets = soup.select('tbody#queryLeftTable tr')
for ticket in tickets:
print(ticket.select_one('.train-name').text) # 火车车次
print(ticket.select_one('.from-to .start-time').text) # 出发时间
print(ticket.select_one('.from-to .end-time').text) # 到达时间
print(ticket.select_one('.lishi').text) # 历时
print(ticket.select_one('.price-type .no-br span').text) # 二等座价格
```
这个代码示例是从12306网站爬取指定日期、起点、终点的火车票信息,您可以根据自己的需求进行修改。需要注意的是,爬取网站数据需要符合法律法规和网站协议,避免对网站造成不必要的影响。
写一个python12306火车票的爬取
Python爬取12306火车票信息通常会涉及到网络抓包、HTML解析以及模拟登录等技术。这里提供一个简化的步骤示例:
```python
# 导入必要的库
import requests
from bs4 import BeautifulSoup
import json
# 创建Session对象,模拟浏览器访问
session = requests.Session()
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'
}
# 登录函数(实际过程需要账号密码)
def login(username, password):
login_url = "https://kyfw.12306.cn/otn/login/init"
session.get(login_url, headers=headers)
# 实现登录逻辑,替换为实际的POST请求和验证码处理
# ...
login('your_username', 'your_password')
# 爬取车次信息
train_info_url = "https://kyfw.12306.cn/otn/leftTicket/init"
response = session.get(train_info_url, headers=headers)
# 解析HTML获取火车信息
soup = BeautifulSoup(response.text, 'html.parser')
trains = soup.find_all('tbody', class_='resultlist') # 查找火车列表部分
for train in trains:
for td in train.find_all('td'):
# 获取出发地、目的地、时间、价格等信息
origin = td.find('span', class_='from').text
destination = td.find('span', class_='to').text
departure_time = td.find('span', class_='time').text
price = td.find('em', class_='money').text
print(f"出发站:{origin}, 目的地:{destination}, 出发时间:{departure_time}, 价格:{price}")
# ... 进行更复杂的数据提取和存储操作
阅读全文