当前位置:首页 > 数码 > GUI-Python-程序-制造微博抓取图形用户界面 (硅PY球场验收规范)

GUI-Python-程序-制造微博抓取图形用户界面 (硅PY球场验收规范)

admin5个月前 (05-04)数码17

在前面的分享中,咱们制造了一个天眼查GUI程序,当天咱们在这个的基础上,继续开发新的性能,微博抓取工具,先来看下最终的成果

全体的界面还是承袭自上次的天眼查界面,咱们间接来看相关性能

微博性能规划

咱们全体的界面规划就是左侧可以选用不同性能,而后右侧的界面会对应扭转

创立微博Widget

关于右侧界面的切换,咱们可认为不同的性能创立不同的Widget,当点击左侧不同性能按钮后,对应切换Widget即可

咱们新建一个weibo相关的函数,关键用来界面规划

defweiboWidget(self):self.left_button_widget_3=QtWidgets.QWidget()self.weiboWebEngine=QWebEngineView()self.weiboWebEngine2=QWebEngineView()self.progressWidget=QtWidgets.QWidget()self.ciyunWidget=QtWidgets.QWidget()

咱们还看到全体界面有一个词云,该词云是经过matplotlib渲染的,所以还须要创立matplotlib规划

#matplotlib绘图区域self.figure=plt.figure(figsize=(7,2))self.canvas=FigureCanvasQTAgg(self.figure)#绘图区域放到图层canvas之中self.gridLayout_weibo.addWidget(self.canvas,5,0,1,9)#图层放到pyqt规划之中

创立微博查问

接上去咱们创立一个微博查问函数,同时由于咱们这里须要实时降级抓取进展条,所以经常使用了多线程的方式

defdoWeiboQuery(self):weibo_link=self.lineEdit_weibo_link.text()weibo_name=self.lineEdit_weibo_name.text()weibo_page=self.weibo_comboBox.currentText()ifnotweibo_linkornotweibo_name:QMessageBox.information(self,"Error","微博链接或许用户称号不能为空",QMessageBox.Yes)returnself.weiboWebEngine.load(QUrl(weibo_link))self.qth=WeiBoQueryThread()self.qth.update_data.connect(self.weiboPgbUpdate)self.qth.draw_ciyun.connect(self.drawCiyun)self.qth.weibo_page=weibo_pageself.qth.weibo_link=weibo_linkself.qth.weibo_name=weibo_nameself.qth.start()

而主线程与子线程之间的通讯,是经常使用信号槽的方式

GUIdefweiboPgbUpdate(self,data):self.pgb.setValue(data)defdrawCiyun(self):self.canvas.draw()self.toolbar=NavigationToolbar2QT(self.canvas,self)self.gridLayout_weibo.addWidget(self.toolbar,8,0,1,9)

接上去就是创立子进程函数,函数主体是爬取微博的代码

"""子进程微博查问"""classWeiBoQueryThread(QThread):#创立一个信号,触发时传递以后期间给槽函数update_data=pyqtSignal(int)draw_ciyun=pyqtSignal()weibo_name=Noneweibo_link=Noneweibo_page=Nonetotal_pv=0timestamp=str(int(time.time()))defrun(self):#微博爬虫try:file_name=self.weibo_name+"_"+self.timestamp+'comment.csv'my_weibo=weibo_interface.Weibo(self.weibo_name)uid,blog_info=my_weibo.weibo_info(self.weibo_link)pv_max=int(self.weibo_page)pre_pv=100//pv_maxforiinrange(int(self.weibo_page)):my_weibo.weibo_comment(uid,blog_info,str(i),file_name)self.total_pv+=pre_pvself.update_data.emit(self.total_pv)print("一切微博评论爬取成功!")print("开局生成词云")font,img_array,STOPS,words=ciyun(file_name)wc=WordCloud(width=2000,height=1800,background_color='white',font_path=font,mask=img_array,stopwords=STOPWORDS,contour_width=3,contour_color='steelblue').generate(words)plt.imshow(wc)plt.axis("off")self.draw_ciyun.emit()print("生成词云成功")exceptExceptionase:print(e)

而关于微博的详细爬取方法,这里就不再开展说明了,我是把一切微博爬虫的代码都封装好了,这里间接调用泄露的接口即可

词云制造

关于词云的制造,咱们还是先经过jieba启动分词处置,而后经常使用wordcloud库生成词云即可

#词云相关defciyun(file,without_english=True):font=r'C:FontsFZSTK.TTF'STOPWORDS={"回复","@","我","她","你","他","了","的","吧","吗","在","啊","不","也","还","是","说","都","就","没","做","人","赵薇","被","不是","如今","什么","这","呢","知道","邓"}df=pd.read_csv(file,usecols=[0])df_copy=df.copy()df_copy['comment']=df_copy['comment'].ly(lambdax:str(x).split())#去掉空格df_list=df_copy.values.tolist()comment=jieba.cut(str(df_list),cut_all=False)words=''.join(comment)ifwithout_english:words=re.sub('[a-zA-Z]','',words)img=Image.open('ciyun.png')img_array=np.array(img)returnfont,img_array,STOPWORDS,words

由于很多评论当中会存在链接消息,造成制造的词云有很多高权重的英文字符,一切这里也经过正则启动了去英文字符处置

至此,咱们这个微博查问性能就成功了~


Python中GUI的程序有哪些要素呢?

对于 Python 中的 GUI 程序,一般可以从三个要素来考虑,它们是:输入:指用户在界面上进行的交互操作,例如鼠标点击、键盘输入等。 在 Python 的 GUI 程序中,常常使用组件如文本框、按钮、下拉框等来接收用户的输入。 处理:指对用户输入的数据或操作进行处理,一般会包括数据的验证、计算、存储等过程。 在 Python 的 GUI 程序中,可以使用函数、类等来实现数据的处理。 输出:指将处理后的数据或结果输出到界面上,让用户进行查看或操作。 在 Python 的 GUI 程序中,可以使用标签、文本框、列表框等组件来显示处理结果。 总之,Python 中的 GUI 程序需要考虑用户输入、数据处理和结果输出等三个要素,通过合理的设计和使用相应的组件和工具,可以实现用户友好的交互体验和高效的数据处理功能。

python中simpleguitk是什么?

在Python中,SimpleGUI是一个轻量级的图形用户界面(GUI)工具包,它是为那些需要快速、简单地创建GUI应用程序的Python程序员设计的。 SimpleGUI的目标是让创建GUI应用程序变得简单,同时它也提供了足够的功能来满足大多数基本需求。 SimpleGUI包含一个名为SimpleGUITK的模块,它是SimpleGUI的一个扩展,提供了更多的功能和更高级的特性。 SimpleGUITK添加了一些额外的组件和工具,例如自定义绘制、更高级的事件处理、文件选择器、滑动条、菜单、工具提示等等。 它还支持更广泛的使用模式,包括多线程和异步操作。 SimpleGUITK是SimpleGUI的一个扩展,它提供了一些额外的功能和工具,使Python程序员能够更轻松地创建复杂的GUI应用程序。 ♡♡ 有帮助到的话,麻烦采纳哦!♡♡

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Python

“GUI-Python-程序-制造微博抓取图形用户界面 (硅PY球场验收规范)” 的相关文章

Python中的LEGB规则 (python怎样打开)

Python中的LEGB规则 (python怎样打开)

Python 中的 LEGB 规则决定了变量和函数的作用域解析顺序。它代表了四个作用域层级: 局部作用域 闭包函数外的函数 全局作用域 内置作用域...

b-b-个入门建议!-Python-技术书籍推荐-附赠-11 (b+b+b等于什么)

b-b-个入门建议!-Python-技术书籍推荐-附赠-11 (b+b+b等于什么)

近年来,Python 持续火爆,越来越多的人开始入门学习 Python。RealPython 作为最受好评的 Python 学习网站,拥有超百万的浏览量,以下是 RealPython 的开发者给...

处置日常义务的终极工具!-Python-文件读写实战 (处置行为是什么意思)

处置日常义务的终极工具!-Python-文件读写实战 (处置行为是什么意思)

/target=_blankclass=infotextkey>Python文件的读写操作时,有很多须要思考的细节,这包含文件关上形式、读取和写入数据的方法、意外处置等。 在本文中,...

惰性求值和lambda表达式的强大组合-Python高级技巧 (惰性求值和逻辑短路)

惰性求值和lambda表达式的强大组合-Python高级技巧 (惰性求值和逻辑短路)

Lambda 表达式 在 Python 中,Lambda 表达式是一个匿名函数,它可以在需要函数对象的地方使用。Lambda 表达式的语法如下: lambda arguments: exp...

一份收藏者必备清单-100个精选Python库 (收藏者的心态)

一份收藏者必备清单-100个精选Python库 (收藏者的心态)

/target=_blankclass=infotextkey>Python为啥这么火,这么多人学,就是由于繁难好学,性能弱小,整个社区十分生动,资料很多。而且这言语触及了方方面面,比如智能...

掌握网络世界的无限可能-Python分布式爬虫助力搜索引擎打造 (掌握网络世界的好处)

掌握网络世界的无限可能-Python分布式爬虫助力搜索引擎打造 (掌握网络世界的好处)

主从模式 主从模式是一种简单的分布式爬虫架构,其中一台主机作为控制节点,负责管理所有运行爬虫的从机。 主节点负责向从机分配任务,并接收新生成的任务。从机只需要从主节点接收任务,并把新生...

五分钟内完成个性化-GUI-计算器搭建-Python (五分钟内完成的动物实验)

五分钟内完成个性化-GUI-计算器搭建-Python (五分钟内完成的动物实验)

这个简单的教程将指导你如何在 Python 中使用 Tkinter 轻松制作一个全功能的 GUI 计算器。 7 8...

网络-摸索Python中的必备模块-解锁数据处置-迷信计算等畛域的弱小工具-自动化 (网络mod)

网络-摸索Python中的必备模块-解锁数据处置-迷信计算等畛域的弱小工具-自动化 (网络mod)

/target=_blankclass=infotextkey>Python罕用的模块十分多,关键分为内置模块和第三方模块两大类,且不同模块运行场景不同又可以分为文本类、数据结构类、数学运算...