• 爬虫再探实战(五)———爬取APP数据——超级课程表【三】——日期时间分析


        接着整理一下时间和日期与发帖量的关系。

        PROJECT2:日期(选取2015整年)

        代码如下:(这里的 kebiao_all.xlsx 是之前抓到的全部的数据)

    import xlrd
    import xlsxwriter
    
    
    # 获取数据的时间列表----->dates_list
    fname = 'kebiao_all.xlsx'
    bk = xlrd.open_workbook(fname)
    #shxrange = range(bk.nsheets)
    sh = bk.sheet_by_name('Sheet1')
    nrows = sh.nrows
    ncols = sh.ncols
    
    # 获取2015年全年的数据
    # 其实这里 date_16_l 用不到的,写上是为了逻辑清晰些
    date_15_l = []
    date_16_l = []
    for i in range(1, nrows):
    	row_data_date = sh.row_values(i)[3]
    	#print(row_data_date)
    	y_a_m = row_data_date.split('/')
    	if y_a_m[0] == '2015':
    		date_15_l.append(y_a_m)
    	else:
    		date_16_l.append(y_a_m)
    
    # 创建电子表格
    workbook = xlsxwriter.Workbook('statistic_date.xlsx')
    worksheet = workbook.add_worksheet()
    worksheet.set_column('A:A', 10)
    worksheet.set_column('B:B', 5)
    
    # 取出日期并对其分组,之后写入
    def every_m(m):
    	dt_15_ml = []
    	for dt_15 in date_15_l:
    		if dt_15[1] == str(m):
    			dt_15_ml.append(dt_15)
    			worksheet.write(m,0,dt_15[1]+'月')
    			worksheet.write(m,1,len(dt_15_ml))
    
    for m in range(1,13):
    	every_m(m)
    
    workbook.close()
    

        在得到的EXCEL简单作图,输出如下:

        PROJECT3:时间

    import xlrd
    import xlsxwriter
    
    #获取24个时间段----->time_list
    time_list = []
    for i in range(0,24):
    	if i < 10:
    		i = '0'+str(i)
    	else:
    		i = str(i)
    	time_list.append(i)
    #print(time_list)
    
    #获取数据的时间列表----->times_list
    fname = 'kebiao_all.xlsx'
    bk = xlrd.open_workbook(fname)
    #shxrange = range(bk.nsheets)
    sh = bk.sheet_by_name('Sheet1')
    nrows = sh.nrows
    ncols = sh.ncols
    
    times_list = []
    for i in range(1, nrows):
    	row_data_time = sh.row_values(i)[4]
    	#print(row_data_time)
    	times_list.append(row_data_time)
    #print(len(times_list))
    
    workbook = xlsxwriter.Workbook('statistic_time.xlsx')
    worksheet = workbook.add_worksheet()
    worksheet.set_column('A:A', 10)
    worksheet.set_column('B:B', 5)
    
    def every_time(i):
    	num = 0
    	for times in times_list:
    		if str(times)[0]+str(times)[1] == i:
    			num += 1
    	
    	worksheet.write(int(i),0,str(i)+'点' )
    	worksheet.write(int(i),1,num)
    	print(i+'---->'+str(num))
    for i in time_list:
    	every_time(i)
    workbook.close()
    

        仔细看就能发现,这个和前面的QQ聊天数据分析是很相似的。

        输出如下:

        至此,经过简单的数据处理和分析,已经能做简单的可视化了,这些图仔细联想一下,还是挺有趣的。

  • 相关阅读:
    ftp 传文件完整代码(二)
    生成文件 权限 以及ftp 传数据(一)
    定时任务配置
    发送电子邮件遇到问题
    mysql 主从分离配置
    知道开始时间结束时间 计算这之间一共多少天
    mysql 语句集(二)
    mysql 的sql文件导出导入
    mysql 批量添加 更新
    Spring Boot中如何干掉if else
  • 原文地址:https://www.cnblogs.com/buzhizhitong/p/5714845.html
Copyright © 2020-2023  润新知