python爬虫抓取航班信息 嵌套 打印
时间: 2025-01-06 11:39:00 浏览: 5
### 使用Python编写爬虫程序抓取航班信息
为了完成这一任务,可以采用两个主要步骤:一是利用`BeautifulSoup`库来获取网页上的航班信息;二是使用`pandas`和`json`库处理可能存在的嵌套结构的数据。
#### 抓取航班信息
对于网络请求部分,通常会用到`requests`库发送HTTP请求,并通过`BeautifulSoup`解析HTML文档。下面是一个简单的例子:
```python
import requests
from bs4 import BeautifulSoup
url = 'http://example.com/flights' # 假设这是目标网站URL
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
flights_info = []
for item in soup.find_all('div', class_='flight-item'):
flight_data = {
'airline': item.find(class_='airline').text.strip(),
'flight_number': item.find(class_='flight-number').text.strip(),
'departure_time': item.find(class_='departure-time').text.strip(),
'arrival_time': item.find(class_='arrival-time').text.strip()
}
flights_info.append(flight_data)
```
这段代码展示了如何定位页面内的特定元素并提取所需的信息[^2]。
#### 处理嵌套数据
一旦获得了原始的航班信息列表,如果这些信息是以JSON格式返回或者是具有复杂层次结构的对象,则可以通过如下方式将其转化为更易操作的形式:
```python
import json
import pandas as pd
# 将之前收集到的所有航班信息转换成字符串形式的JSON对象
json_string = json.dumps(flights_info)
# 解析JSON字符串为字典列表
data_dict = json.loads(json_string)
# 利用pandas将嵌套的JSON转为DataFrame以便后续分析
df_flights = pd.json_normalize(data_dict)
print(df_flights.head()) # 打印前几条记录查看效果
```
此过程实现了从复杂的嵌套型JSON至平面化表格形式的转变,使得数据分析变得更加直观简单[^1]。
阅读全文