我负责的是使用Qt5图形库的相关函数将我们项目中的下载功能和保存路径功能添加槽函数中实现,并且制作了一个简单的界面将输入内容展示在界面上,且可以像app一样选择图片保存的路径。
class Patupian(object):#创建一个类 def __init__(self): ##窗口相关 self.msg = QMessageBox() # 调用获取图片的变量 # 窗口 self.window = QWidget() #背景标签 self.Ql=QLabel(self.window) # 图片名称输入框#名称 self.tE_name = QPlainTextEdit(self.Ql) #保存路径文本框 self.tE_path=QPlainTextEdit(self.Ql) # 爬取数量文本框 self.tE_num = QLineEdit(self.Ql) # 数量 #开始按钮 self.bT = QPushButton("开始爬取", self.Ql) #保存路径按钮 self.bT_path=QPushButton("保存路径",self.Ql)#写到这里了 #目录路径 self.Path_tE=QFileDialog() self.path="./images/"#根据输入的名称创建文件夹 self.json_count = 0 # 请求到的json文件数量(一个json文件包含30个图像文件) self.url='https://image.baidu.com/search/acjson?tn=resultjson_com&logid=9325693848610753293&ipn=rj&ct' \ '=201326592&is=&fp=result&fr=&word={'\ '}&cg=star&queryWord={'\ '}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&hd=&latest=©right='\ '&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&expermode=&nojc=&isAsync=&pn={'\ '}&rn=30&gsm=1e&1639362891306=' self.directory = self.path+"/{}" #self.directory = r"./tu/{}" # 存储目录 这里需要修改为自己希望保存的目录 {}不要丢 self.header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.30 ' }
#界面窗口
self.window.setWindowTitle('图片爬虫')
self.window.resize(450, 120)
self.window.move(300, 300)
#爬取图片的名称
self.tE_name.setPlaceholderText("爬什么图片嘞")
self.tE_name.resize(300, 30)
self.tE_name.move(20, 10)
#爬取数量文本框
self.tE_num.setPlaceholderText("爬取的数量")
self.tE_num.resize(300, 30)
self.tE_num.move(20, 40)
#路径保存文本框
self.tE_path.setPlaceholderText(self.path)
self.tE_path.resize(300,30)
self.tE_path.move(20, 70)
self.bT_path.move(350,70)#路径保存按钮
self.bT.move(350, 10)#爬取按钮
self.Ql.move(0,0)
self.Ql.resize(450,120)
self.Ql.setStyleSheet("QLabel{border-image: url(images/bk_img.png);}")
def Win_path(self):
#选择保存目录
self.path=self.Path_tE.getExistingDirectory(self.window,"选择路径")#打开选择目录的同时,将路径赋值给self.path
self.tE_path.setPlaceholderText(self.path)#将路径输出到路径文本框
print(self.path)
self.directory = self.path+"/{}"
print("新的地址{}".format(self.directory))
print("新的地址{}".format(self.path))
#入口函数
def W_run(self):
self.darw_window()
#self.bT_ck()
#如果点击了爬取按钮就跳转到爬取的函数
self.bT.clicked.connect(self.run)#函数跳转 点击后爬取数据
#如果点击了保存按钮就跳转到保存的函数界面
self.bT_path.clicked.connect(self.Win_path)#保存路径的函数跳转