当前位置: 首页 > news >正文

做广告公司网站建设价格建设网站包括哪些费用

做广告公司网站建设价格,建设网站包括哪些费用,wordpress 后台 谷歌字体,网站建设技术合同模板前言 本篇教程适合对Python爬虫和Python软件制作感兴趣的小伙伴阅读#xff0c;看完本篇教程#xff0c;你将能更深入了解PyQt5与实际功能的整合方式。 1.设计界面 首先在pycharm中创建一个新目录#xff0c;这里我建立的目录名为爬图片#xff0c;然后按如图打开Qt设计…前言 本篇教程适合对Python爬虫和Python软件制作感兴趣的小伙伴阅读看完本篇教程你将能更深入了解PyQt5与实际功能的整合方式。 1.设计界面 首先在pycharm中创建一个新目录这里我建立的目录名为爬图片然后按如图打开Qt设计器 如果你的ExternalTools没有QtDesigner和PyUIC则说明没有为PyCharm配置QT相关工具可按照此教程先配置PyQT5篇 -1.环境配置与初步使用(图文超详细)_tool settings里的working directory-CSDN博客 我们直接拖拽出一个简单的软件界面注意在ComboBox中我添加了百度图片、必应图片、搜狗图片、360图片因为我们要做一个能够爬取各大搜索引擎的图片爬取器而且我这里给PushButton控件重命名为btn_catch 界面拖拽完成后使用快捷键ctlrs保存到当前目录会出现一个untitled.ui文件同样的对此文件右键然后ExternalTools-PyUIC就会产生一个untitled.py文件此文件中含有两个函数setupUi和retranslateUi我们这里将其重命名为Window.py毕竟是个GUI窗口嘛如图 2.启动界面 新建文件Main.py然后复制如下代码一定要看注释否则最后打包软件到时候会出问题 import sys from PyQt5.QtWidgets import QApplication, QMainWindow#这个Window.py文件在名为爬图片的目录我们不要用from 爬图片 import Window的方式引入否则后面打包的软件会报错找不到目录(当然你也可以打包目录但这里为了方便去掉目录简化打包命令) import Windowif __name____main__:appQApplication(sys.argv)mainWindowQMainWindow()uiWindow.Ui_MainWindow() #这里的Window便是我们Window.py文件的名字ui.setupUi(mainWindow)mainWindow.show()sys.exit(app.exec_()) 然后启动Main.py看看是否能启动界面若成功则显示如图若失败则大概率是你的QT库有问题可卸载重装pyQT若还不行则降低python版本为3.10及以下我之前就是这样 3.完善控件 在正式写爬图片的功能前我们还需要对此窗口文件添加相关控件的功能比如ListView控件(就是大白框)、PushButton(就是按钮)、Progress(就是进度条)因为在爬取图片时会和这些控件进行交互。 第一初始化ListView 我们直接在Window.py文件的函数setupUi最下面加入如下代码即可如图 # ListView要展示的数据存放区 self.messageList [] # ListView的数据模型对象初始化 self.listMode QStringListModel() # 将数据放入模型中此时数据为空 self.listMode.setStringList(self.messageList) # 使listview生效 self.listView.setModel(self.listMode) 然后创建一个专门用来操作ListView的函数(这里专业术语叫做插槽函数)如图 # 定义一个操作ListView的插槽函数 def controListView(self, msg):# 追加数据self.messageList.append(msg \n)# 更新模型self.listMode.setStringList(self.messageList)if msg爬取结束:self.btn_catch.setEnabled(True) 第二初始化进度条 同样的在setupUi函数最后加入如下代码如图 #pv作为给进度条传值的中间变量 self.pv 0 #设定进度条最小值 self.progressBar.setMinimum(0) #设置当前进度条的值 self.progressBar.setValue(self.pv) 然后为进度条也添加个插槽函数如图 #定义一个操作进度条的插槽函数 def controlProgress(self,addVal,MaxVal):self.pv addVal #进度条变量自加self.progressBar.setMaximum(MaxVal) #设置进度条最大值self.progressBar.setValue(self.pv) #设置进度条的值 第三初始化按钮 我这里的按钮在设计界面时为按钮重命名为了btn_catch(默认是叫做pushButton) 在Window.py添加一个函数供按钮调用然后在setupUi最后添加如下代码与函数绑定如图 #按钮点击后 self.btn_catch.clicked.connect(self.btn_click)#按钮点击后执行的函数 def btn_click(self):#获取ComboBox中当前的选项chosseItemself.comboBox_source.currentText()#如果选项为百度图片if chosseItem百度图片:pass 4.功能分析 控件功能初始化好了然后是写爬图片的功能了既然要爬图片那我们就先搞个爬取百度图片的QT线程为什么要用线程呢因为这GUI界面你不用其他线程去处理耗时的功能放在和GUI界面一个主线程中就会卡住。 分析爬取图片说白了就是请求百度图片网页获取图片链接并下载图片那么这个线程应当接收参数关键字和图片数量当然百度图片这里我们按照轮次去爬他一轮约30张至于为什么按照轮次可以看这里分析爬取百度图片 Python爬取百度图片(包括分析原理) 所以这里需接收两个参数 关键词keyword、轮次rangeCount 5.爬图功能 新建QT线程文件名为BaiDuThread.py填写如下代码 import json import os.path import time import requestsfrom PyQt5.QtCore import QThread, pyqtSignalclass BaiDuThread(QThread):#消息信号用于传递消息给ListView控件msgSignpyqtSignal(str)#进度条信号progressSignpyqtSignal(int,int)def __init__(self,keyword,rangeCount):super(BaiDuThread, self).__init__()self.keyword keywordself.rangeCount rangeCountdef run(self):keywordself.keyword #关键词rangeCountself.rangeCount #轮次if not os.path.exists(keyword):os.mkdir(keyword)#为了简单这里直接将轮次作为进度条最大值MaxValrangeCountself.progressSign.emit(0,MaxVal)self.msgSign.emit(正在从百度搜索引擎爬取和keyword相关的图片)for count in range(rangeCount):pn count * 30url https://images.baidu.com/search/acjson?tnresultjson_comlogid11514788725054802565ipnrjct201326592isfpresultfrword str(keyword) queryWord str(keyword) cl2lm-1ieutf-8oeutf-8adpicidst-1zic0hdlatestcopyrightssetabwidthheightface0istype2qcncexpermodenojcisAsyncpn str(pn) rn30gsm1e1717479169689headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36}res requests.get(url, headersheaders)if len(res.json()[data]) 1:self.msgSign.emit(无图片可获取了爬取结束)breakjson_data res.json()[data] # 获取json数据json_str json.dumps(json_data, indent2) # json转json字符串list_data json.loads(json_str) # json字符串转list/dictfor obj in list_data:try:pic_url obj[thumbURL] # 图像链接except:continuer requests.get(pic_url, headersheaders)with open(str(keyword) \\ str(time.time()) .jpg, modewb) as f:f.write(r.content)self.progressSign.emit(1,MaxVal)self.msgSign.emit(爬取结束) 6.完善按钮 回到Window.py文件我们继续完善btn_click函数为如下 # 按钮点击后执行的函数def btn_click(self):self.progressBar.setValue(0)self.pv 0# 获取ComboBox中当前的选项chosseItem self.comboBox_source.currentText()# 获取关键字keyword self.lineEdit_keyword.text()if keyword:self.controListView(关键字不可为空)return# 获取轮次if not self.lineEdit_count.text().isdigit():self.controListView(轮次必须为正整数)returnrangeCount int(self.lineEdit_count.text())# 如果选项为百度图片if chosseItem 百度图片:self.btn_catch.setEnabled(False)self.baiduThreadBaiDuThread(keyword,rangeCount)self.baiduThread.msgSign.connect(lambda msg:self.controListView(msg)) #连接消息信号self.baiduThread.progressSign.connect(lambda addVal,maxVal:self.controlProgress(addVal,maxVal)) #连接进度条信号self.baiduThread.start() 7.测试功能 到此处爬百度图片的功能就集成到GUI界面了打开Main.py开始使用结果如下 8.打包软件 最后是打包为软件其实一条命令即可没网上那些低质量教程说的那么复杂。 打包前先检查每个文件最上边引入其他文件时是否有带目录名若带目录名将其去掉即如图我的Window.py中就带有爬图片目录名字去掉后再打包(当然你也可以打包目录但这里为了方便去掉目录简化打包命令) 方式1直接打包 在当前目录下CMD的控制台直接执行命令打包为exe: pyinstaller -F -w Main.py -p Window.py -p BaiDuThread.py 如果你是在PyCharm控制台打包则需要加上.\ pyinstaller -F -w .\Main.py -p .\BaiDuThread.py -p .\Window.py 打包完后在目录会生成个dist目录里边便是软件如图 方式2虚拟环境打包 原因python打包会把所有自己下载的包都加入进去会造成软件体积很大如下图是笔者昨天未使用虚拟环境打包后的软件打包时我说时间怎么这么久出门一趟回来一看2.5个G.给整麻了 1.新建Python项目创建虚拟环境如图点点点就完事 2.对虚拟环境目录右键打开控制台用命令pip list查看当前虚拟环境的库的数量(看环境是否正常)如图 3.新的虚拟环境肯定是缺少你项目需要的包下载就完事最后打包命令和直接打包是一样的如图可以看到虚拟环境打包后体积就不再冗余了 9.总结 总结本教程将实际功能与PyQt5进行整合希望本篇教程对初学PyQt5的同学有帮助虽然本教程只提供了百度图片的爬取教程但其他搜索引擎的爬取方式大同小异可自行下来添加功能。 原文及软件链接》https://www.youluoyuan.com/215.html 我们的QQ交流群307531422
http://www.w-s-a.com/news/388092/

相关文章:

  • 网站制作容易吗logo免费生成网站
  • 建设厅官方网站下载专区网络托管公司
  • 祥云平台官方网站网线制作实验原理
  • 把网站做成app的软件下载国外做兼职的网站有哪些
  • 网站建设 海豚弯专业的网站开发服务商
  • 那个网站有免费模板中国家装公司十大排名
  • 中铁建设集团有限公司门户网站余杭区建设规划局网站
  • 天猫网站建设的目标是什么做网站常见问题模板
  • 做php网站需要什么软件天津建设网官方网站
  • 南漳网站开发上海网站推广方法
  • 深圳seo网站大连旅顺房价
  • dede网站 地图什么做有没有做黑市网站
  • 做网站参考文献域名如何做网站
  • 怎么选择网站开发英文网站建设用途
  • 怎样做电子商务网站织梦生成手机网站
  • 公司网站建设选什么服务器网站里怎样添加关键词
  • 深圳建设局网站深业中城绿化项目营销型网站开发流程包括
  • 找销售的网站九江市建设项目服务中心
  • 东原ARC网站建设公司合肥seo网站推广外包
  • 那个网站是做房产中介的网站制作软件小学
  • 做网页怎么建站点视频解析网站
  • 做网站的系统设计网站设计论文前言
  • 做外贸网站多久更新汕头市建设局网站首页
  • 如何建设专业化的网站手机管理网站模板
  • 花生壳做网站如何用腾讯云做网站
  • 搭建集团网站开发app需要哪些软件
  • 网站建设 中企动力福州阀门wordpress 多说评论
  • php网站集成支付宝接口下载免费网络软件
  • 卡盟网站是怎么建设的用花生壳做网站速度可以吗
  • 杭州物联网前十名公司优秀seo平台