1“希希敬敬对”百度贴吧小爬虫任务计划:
龙江腾(队长) 201810775001
完成爬下的发帖主题人信息进行图形化显示的review,明天完成程序生成exe文件,程序生成apk文件的review,程序贴吧推广使用的review。
杨希 201810812008
完成爬下的发帖主题人信息进行图形化显示,明天完成程序生成exe文件的review,程序生成apk文件,程序贴吧推广使用的review。
何敬上 201810812004
完成爬下的发帖主题人信息进行图形化显示review,明天完成程序生成exe文件的review,程序生成apk文件的review,程序贴吧推广使用。
2今天讨论照片:
3遇到的问题:
暂无
4程序代码
import matplotlib.pyplot as pltimport matplotlibimport numpy as npfrom tkinter import *from matplotlib.pylab import mplfrom matplotlib.backends.backend_tkagg import FigureCanvasTkAgg #NavigationToolbar2TkAggfrom matplotlib.figure import Figureclass Creat_form(): def __init__(self, school, anchors): self.root = Tk() #创建主窗体 self.root.title("百度贴吧数据小爬虫") self.root.geometry('1000x600') # 是x 不是* self.canvas = Canvas() #创建一块显示图形的画布 self.figure = self.create_matplotlib(school, anchors) #返回matplotlib所画图形的figure对象 self.create_form(self.figure) #将figure显示在tkinter窗体上面 self.root.mainloop() def create_matplotlib(self, school, anchors): # 设置中文字体正常显示 plt.rcParams['font.sans-serif'] = ['SimHei'] # 设置负号正常显示 plt.rcParams['axes.unicode_minus'] = False f = plt.figure(num = 2, figsize=(10,6),dpi=80, frameon = True) #创建绘图对象f fig1 = plt.subplot(1,1,1) #创建一个子图 font1 = { 'weight': 'normal', 'size': 18, } # 条形图标题设置 plt.title(school + "吧前10页主题作者发帖回复总数排行榜",font1) # 设置X,Y轴标签 font2 = { 'weight': 'normal', 'size': 14, } plt.xlabel("主题作者",font2) plt.ylabel("回复总数",font2) # 横、纵坐标刻度显示值 row_list = [] col_list = [] for kv in anchors: row_list.append(kv['name']) col_list.append(kv['number']) # print(row_list) # print(col_list) # row_list = ['七七', '火星', 'later', 'maybe','like','science'] # col_list = [15, 20, 30, 45, 60, 70] # 绘制条形图 # height:长条形的高度 # width:长条形宽度,默认值0.8 x = range(len(col_list)) rects = plt.bar(x, height=col_list, width=0.2, alpha=0.8, color='blue') # 设置y轴的取值范围 plt.ylim(0, 15000) # 设置X轴刻度显示值(参数一:中点坐标,参数二:显示值) plt.tick_params(labelsize = 12) plt.xticks([index for index in x], row_list,rotation = 40) #绘制条形图上的数据标签 for rect in rects: height = rect.get_height() plt.text(rect.get_x() + rect.get_width() / 2, height + 1 , str(height) , ha = "center", va = "bottom") plt.show() return f def create_form(self, figure): #把绘制的图形显示到tkinter窗口上 self.canvas = FigureCanvasTkAgg(figure, self.root) self.canvas.draw() self.canvas.get_tk_widget().place(relx = 0.12,rely = 0.12)
5生成结果