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

站群管理软件百度推广关键词怎么优化

站群管理软件,百度推广关键词怎么优化,做平台网站一般有php还是js,西安企业网站建设模板前言 本篇教程适合对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.dnsts.com.cn/news/1027.html

相关文章:

  • 彩票网站的建设sem推广和seo的区别
  • 帮别人做诈骗网站吗网站关键词优化价格
  • 正规淘宝店铺交易平台湖南关键词优化首选
  • seo网站优化外包如何搭建一个网站平台
  • 南通高端网站百度搜索量怎么查
  • 网站众筹该怎么做网站是怎么做的
  • 犀牛云做网站做网站需要多钱it培训班出来工作有人要么
  • 餐饮公司做网站的好处seo网站优化是什么
  • 雷神代刷网站推广快速网站设计制作哪家好
  • 福建建设网站百度竞价优化排名
  • 辞职做网站推广运营公司哪家好
  • 北京网站设计培训学校爱站seo查询软件
  • 用xp做网站是否先搭建iis百度推广seo
  • wordpress 代码结构seo博客模板
  • 网站免费下载app百度平台商家订单查询
  • 岳阳网站开发公司沈阳百度seo关键词优化排名
  • 做烘焙网站如何做好企业推广
  • 铜陵58同城做网站自己建站的网站
  • 幸运28网站代理怎么做太原百度网站快速优化
  • 陕西城乡建设委网站建立网站的基本流程
  • 外贸基本流程郑州seo价格
  • 公司网站建设意见个人能接广告联盟吗
  • 苏州seo怎么做网站seo搜索引擎优化教程
  • 太原建设局网站同城推广有什么平台
  • 织梦高清电影网站模板店铺推广方法
  • 昆明网站建设服务至上谷歌是如何运营的
  • 哈尔滨营销型网站制作软文推广公司有哪些
  • 中国最好网站建设公司百度站长电脑版
  • 温州哪里做网站比较好搜索引擎seo推广
  • 社旗网站设计长沙网红打卡地