Вы можете напрямую вызвать API следующим образом:
import csv
import json
import requests
params = {
"BodyType": "",
"Year": "",
"Make": "",
"Model": "",
"PriceRange": "",
"PriceStart": "",
"PriceEnd": "",
"Condition": "pre-owned-cars",
"Color": "",
"InteriorColor": "",
"CityMpg": "",
"HighwayMpg": "",
"Transmission": "",
"DriveTrain": "",
"Fuel": "",
"SearchExpression": "",
"SortCriteria": "",
"SortDirection": "",
"LocationId": "",
"IsCertified": "-1",
"IsSold": "",
"IsFuzzySearch": "false",
"startIndex": "1",
"Results": "60"
}
names = ["VehicleName", "Engine", "Transmission",
"FuelEconomyCity", "FuelEconomyHighway", "StockNo", "Vin", "IsSold", "Mileage"]
def main(url):
r = requests.get(url, params=params).json()
with open("data.csv", 'w', newline="") as f:
writer = csv.writer(f)
writer.writerow(names)
for item in r['vehicles']:
writer.writerow([item[name] for name in names])
main("https://www.tgmotorsales.com/Inventory/Search")
Вывод: просмотр в режиме онлайн
![enter image description here](https://i.stack.imgur.com/QydL1.png)
Короткая Pandas версия:
def main(url):
r = requests.get(url, params=params).json()
df = pd.DataFrame(r['vehicles'])
df.to_csv("data.csv", index=False)
main("https://www.tgmotorsales.com/Inventory/Search")