前两篇我们分别爬取了电影数据,也将爬取到的数据存到了数据库;
接下来我们要对现有的数据进行分析,已获得一些有效信息;
我这里只是进行了简单的可视化分析,运用Echarts插件生成各种图标;
python连接mysql数据库查询电影信息,并生成json数据,存储到本地文件里,以供前端js读取生成可视化图表:
查询电影类型数量并返回json数据,其后写入文件里面
typeNameList = ['剧情','喜剧','动作','爱情','科幻','悬疑','惊悚','恐怖','犯罪',
'同性','音乐','歌舞','传记','历史','战争','西部','奇幻','冒险',
'灾难','武侠','情色']
def getMovieTypeJson():
typeNumList = []
for type in typeNameList:
sql = r"select count(type) from movie where type like '%{}%'".format(type)
dataM = getJsonData(sql)
typeNumList.append(int(str(dataM).strip(r'(').strip(r',)')))
return {'typeNameList' : typeNameList, 'typeNumList' : typeNumList}
def writeTypeJsonFile(path):
with open(path, 'w') as f:
json.dump(getMovieTypeJson(), f)
#执行写入操作
writeTypeJsonFile(r'C:\Users\Administrator\Desktop\books\movieType.txt')
对应前端页面:
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};
option = null;
var typeNameList = [];
var typeNumList = []
$.ajaxSettings.async = false;
$.getJSON ("../Desktop/books/movieType.txt", function (data) {
typeNameList = data.typeNameList;
typeNumList = data.typeNumList;
//alert(typeNumList)
})
app.title = '豆瓣top250电影类型统计 - 条形图';
option = {
title: {
text: '豆瓣top250电影类型统计',
subtext: '数据来自豆瓣'
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
}
},
legend: {
data: ['电影类型数量', '2012年']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'value',
boundaryGap: [0, 0.01]
},
y