用Python写一个爬虫代码,爬汽车之家比亚迪销售数据,以从csv格式将数据导出
时间: 2023-06-19 11:04:49 浏览: 62
好的,以下是爬虫代码:
```python
import requests
import csv
# 设置请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
# 请求数据
url = 'https://api.car.bitauto.com/CarInfo/getlefttreejson.ashx?tagtype=json&pagetype=masterbrand'
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'
data = response.json()
# 获取比亚迪品牌 id
brand_id = ''
for brand in data:
if brand['name'] == '比亚迪':
brand_id = brand['id']
break
# 请求比亚迪销售数据
url = f'https://api.car.bitauto.com/CarInfo/getlefttreejson.ashx?tagtype=json&pagetype=serial&objid={brand_id}'
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'
data = response.json()
# 解析数据并保存为 csv 文件
with open('byd_sales_data.csv', 'w', newline='', encoding='utf-8-sig') as f:
writer = csv.writer(f)
writer.writerow(['车系名称', '销售月份', '销量'])
for serial in data:
serial_id = serial['id']
url = f'https://api.car.bitauto.com/CarInfo/GetSerialSalesTrend.ashx?serialid={serial_id}'
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'
sales_data = response.json()['Data']
for sales in sales_data:
writer.writerow([serial['name'], sales['month'], sales['sales']])
```
这个爬虫代码首先请求汽车之家车系数据 API,获取比亚迪品牌的 id,然后再次请求 API,获取比亚迪车系的销售数据。最后,将数据保存为 csv 文件。