赞
踩
[毕业设计]2023-2024年最新最全计算机专业毕设选题推荐汇总
2023年 - 2024年 最新计算机毕业设计 本科 选题大全 汇总
技术栈:
Python语言、Django框架、vue前端框架、MySQL数据库、网络爬虫技术、懂车帝数据、HTML、Echarts可视化大屏
(1)汽车大数据分析可视化大屏
(2)数据后台管理系统
(3)汽车数据管理
(4)系统登录界面
(5)数据采集界面
Django是一个开源的Web框架,懂车帝是一个提供汽车相关信息的平台。本文将介绍如何利用Django进行懂车帝数据的采集、分析和可视化,并展示在一个大屏上。
首先,我们可以使用Django的爬虫框架来采集懂车帝的数据。通过编写爬虫程序,我们可以自动抓取懂车帝网站上的汽车信息,如品牌、型号、价格等,并存储到数据库中。
接下来,我们可以利用Django的数据分析功能对采集到的数据进行处理和分析。例如,我们可以统计不同品牌的车型数量、平均价格等指标,以及根据地区、车型等条件进行数据筛选和分组。
为了将数据可视化展示在大屏上,我们可以使用Django配合一些数据可视化库,如Matplotlib、Plotly等。通过编写相应的视图函数和模板,我们可以将分析结果以各种图表形式展示,如柱状图、折线图、饼图等。
最后,我们可以通过在大屏上运行Django项目,将数据分析和可视化结果展示出来。大屏可以呈现实时更新的数据,并提供交互功能,如筛选、搜索等,以便用户根据自己的需求查看和分析数据。
总之,利用Django进行懂车帝数据的采集、分析和可视化大屏展示,可以帮助用户更好地了解汽车市场的情况,为决策提供数据支持。
import requests from lxml import etree import csv import os import time import json import pandas as pd import re import django os.environ.setdefault('DJANGO_SETTINGS_MODULE','car.settings') django.setup() from myApp.models import carInfo class spider(object): def init(self): if not os.path.exists('./temp.csv'): with open('./temp.csv','a',newline='',encoding='utf-8') as wf: write = csv.writer(wf) write.writerow(["brand","carName","carImg","saleVolume","price","manufacturer","rank","carModel", "energyType","marketTime","insure"]) def get_page(self): with open('./spiderPage.txt','r') as r_f: return r_f.readlines()[-1].strip() def set_page(self,newPage): with open('./spiderPage.txt','a') as a_f: a_f.write('\n'+str(newPage)) def main(self): count = self.get_page() params = { 'offset':int(count) } print("数据从{}开始爬取".format(int(count)+1)) pageJson = requests.get(self.spiderUrl,headers=self.headers,params=params).json() pageJson = pageJson["data"]["list"] try: for index, car in enumerate(pageJson): carData = [] print("正在爬取第%d" % (index + 1) + "数据") # 品牌名 carData.append(car["brand_name"]) # 车名 carData.append(car["series_name"]) # 图片链接 carData.append(car["image"]) # 销量 carData.append(car["count"]) # 价格 price = [] price.append(car["min_price"]) price.append(car["max_price"]) carData.append(price) # 厂商 carData.append(car["sub_brand_name"]) # 排名 carData.append(car["rank"]) # 第二个页面 carNumber = car["series_id"] infoHTML = requests.get("https://www.dongchedi.com/auto/params-carIds-x-%s" % carNumber, headers=self.headers) infoHTMLpath = etree.HTML(infoHTML.text) # carModel carModel = infoHTMLpath.xpath("//div[@data-row-anchor='jb']/div[2]/div/text()")[0] carData.append(carModel) # energyType energyType = infoHTMLpath.xpath("//div[@data-row-anchor='fuel_form']/div[2]/div/text()")[0] carData.append(energyType) # maketTime marketTime = infoHTMLpath.xpath("//div[@data-row-anchor='market_time']/div[2]/div/text()")[0] carData.append(marketTime) # insure insure = infoHTMLpath.xpath("//div[@data-row-anchor='period']/div[2]/div/text()")[0] carData.append(insure) print(carData) self.save_to_csv(carData) except: pass # print(pageJson) self.set_page(int(count)+10) self.main() def save_to_csv(self,resultData): with open('./temp.csv','a',newline='',encoding='utf-8') as f: writer = csv.writer(f) writer.writerow(resultData) def clear_csv(self): df = pd.read_csv('./temp.csv') df.dropna(inplace=True) df.drop_duplicates(inplace=True) print("总数量为%d"%df.shape[0]) return df.values def save_to_sql(self): data = self.clear_csv() for car in data: carInfo.objects.create( brand = car[0], carName=car[1], carImg=car[2], saleVolume=car[3], price=car[4], manufacturer=car[5], rank=car[6], carModel=car[7], energyType=car[8], marketTime=car[9], insure=car[10] ) if __name__ == '__main__': spiderObj = spider() spiderObj.init() spiderObj.main() spiderObj.save_to_sql()
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/371176
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。