# -*- coding: utf-8 -*-
"""
Created on Sat Apr 27 15:09:46 2019
@author: dell
"""
import tkinter as tk
import tkinter.messagebox
import requests
import os
import traceback
from selenium import webdriver
import time
from tkinter import ttk
from tkinter import filedialog
win = tk.Tk()
win.title("图片搜索下载") # 添加标题
# 进行网格布局
ttk.Label(text='').grid(row=0,padx=10)
ttk.Label(text='').grid(row=1,padx=60)
ttk.Label(text='').grid(row=2,padx=60)
ttk.Label(text='').grid(row=3,padx=60)
ttk.Label(text='').grid(row=4,padx=60)
ttk.Label(text='').grid(row=5,padx=60)
ttk.Label(text='').grid(row=6,padx=60)
ttk.Label(text='').grid(row=7,padx=60)
ttk.Label(text='').grid(row=9,padx=60)
ttk.Label(text='').grid(row=11,padx=60)
ttk.Label(text='').grid(row=13,padx=60)
ttk.Label(text='').grid(column=6,padx=35)
ttk.Label(text='').grid(column=7,padx=35)
'''
ttk.Label(text='').grid(column=8,padx=20)
ttk.Label(text='').grid(column=4,padx=20)
'''
ttk.Label(win, text="关键字:").grid(column=3, row=8) # 添加一个标签,并将其列设置为3,行设置为8
ttk.Label(win, text="下载页数:").grid(column=3, row=10) # 设置其在界面中出现的位置 column代表列 row 代表行
ttk.Label(win, text="下载路径:").grid(column=3, row=12)
# 定义下载函数
def download(url, filename):
# 检查下载目录是否存在
if os.path.exists(filename):
print('file exists!')
return
try:
# 保存下载图片
r = requests.get(url, stream=True, timeout=60)
r.raise_for_status()
with open(filename, 'wb') as f:
for chunk in r.iter_content(chunk_size=1024):
if chunk: # filter out keep-alive new chunks
f.write(chunk)
f.flush()
return filename
except KeyboardInterrupt:
if os.path.exists(filename):
os.remove(filename)
raise KeyboardInterrupt
except Exception:
traceback.print_exc()
if os.path.exists(filename):
os.remove(filename)
# 定义获取路径函数
def selectDir():
global file_path
file_path.set(filedialog.askdirectory())
# 定义爬虫函数
def pa():
try:
#对输入的量进行控制,预防程序的奇怪错误
start = 1
end = int(float(name1.get()))
# 创建下载目录,可以修改Imgs4成其它的,也可以下载到现有目录
# if os.path.exists(name.get()) is False:
# os.makedirs(name.get())
# if os.path.exists(r'C:\Users\Mercer\Pictures\library') is False:
# os.makedirs(r'C:\Users\Mercer\Pictures\library')
if os.path.exists(file_path.get()) is False:
os.makedirs(file_path.get())
# 打开谷歌浏览器Chrome
browser = webdriver.Chrome()
browser.get("http://image.baidu.com")
#print(browser.page_source)
find_1=browser.find_element_by_id("kw")
print('----------------------------')
print(find_1)
find_1.send_keys(keyWord.get())
btn=browser.find_element_by_class_name("s_search")
print('----------------------------')
print(btn)
btn.click()
#
# imgs=browser.find_elements_by_class_name("imgitem")
# print('----------------------------')
# print(imgs[0])
# imgs[0].click()
# print('----------------------------')
#
url=browser.find_element_by_name("pn0").get_attribute('href')
browser.get(url)
# 设置下载的图片数量及进行下载
for i in range(start,end + 1):
# # 获取图片位置
img = browser.find_elements_by_xpath("//img[@class='currentImg']")
for ele in img:
# 获取图片链接
target_url = ele.get_attribute("src")
# 设置图片名称。以图片链接中的名字为基础选取最后25个字节为图片名称。
img_name = target_url.split('/')[-1]
# filename = os.path.join(r'C:\Users\Mercer\Pictures\library', "3_"+str(i)+".jpeg")
# filename = os.path.join(name.get(), "3_"+str(i)+".jpeg")
filename = os.path.join(file_path.get(), keyWord.get()+"_"+str(i)+".jpeg")
download(target_url, filename)
# # 下一页
next_page = browser.find_element_by_class_name("img-next")
next_page.click()
time.sleep(3)
# # 显示进度
print('%d / %d' % (i, end))
# 关闭浏览器
browser.quit()
except ValueError:
tkinter.messagebox.askokcancel("错误提示","你输入的应该是整数")
# 按钮
action = ttk.Button(win, text="点击搜索", command=pa) # 创建一个按钮, text:显示按钮上面显示的文字, command:当这个按钮被点击之后会调用command函数
action.grid(column=5, row=14) # 设置其在界面中出现的位置 column代表列 row 代表行
select=ttk.Button(win,text="选择目录",command=selectDir)
select.grid(column=6,row=12)
# 爬取关键词
keyWord = tk.StringVar()
keyWordEntered = ttk.Entry(win, width=34, textvariable=keyWord)
keyWordEntered.grid(column=4, columnspan=2, row=8) # 设置其在界面中出现的位置 column代表列 row 代表行
keyWordEntered.focus() # 当程序运行时,光标默认会出现在该文本框中
# 下载数量
name1 = tk.StringVar() # StringVar是Tk库内部定义的字符串变量类型,在这里用于管理部件上面的字符;不过一般用在按钮button上。改变StringVar,按钮上的文字也随之改变。
name1Entered = ttk.Entry(win, width=34, textvariable=name1) # 创建一个文本框,定义长度为12个字符长度,并且将文本框中的内容绑定到上一句定义的name变量上,方便clickMe调用
name1Entered.grid(column=4,columnspan=2, row=10) # 设置其在界面中出现的位置 column代表列 row 代表行
#目标文件夹名
file_path = tk.StringVar() # StringVar是Tk库内部定义的字符串变量类型,在这里用于管理部件上面的字符;不过一般用在按钮button上。改变StringVar,按钮上的文字也随之改变。
nameEntered = ttk.Entry(win, width=34, textvariable=file_path) # 创建一个文本框,定义长度为12个字符长度,并且将文本框中的内容绑定到上一句定义的name变量上,方便clickMe调用
nameEntered.grid(column=5, row=12) # 设置其在界面中出现的位置 column代表列 row 代表行
#标题图片
photo = tk.PhotoImage(file="spyder.gif")#file:t图片路径
imgLabel = tk.Label(win,image=photo)#把图片整合到标签类中
imgLabel.grid(row=3,column=5)
win.mainloop() # 当调用mainloop()时,窗口才会显示出来
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1.本项目基于Keras框架,引入CNN进行模型训练,采用Dropout梯度下降算法,按比例丢弃部分神经元,同时利用IOT及微信小程序实现自动化远程监测果实成熟度以及移动端实时监测的功能,为果农提供采摘指导,有利于节约劳动力,提高生产效率,提升经济效益。 2.项目运行环境包括:Python环境、TensorFlow环境、JupyterNotebook环境、PyCharm环境、微信开发者工具和OneNET云平台。 3.项目包括5个模块:python爬虫及数据预处理、创建模型与编译、模型训练及保存、上传结果、小程序开发。其中定义架构为二个卷积层,在每个卷积层后都连接一个最大池化层及一个全连接层,进行数据的降维。在每个卷积层上都使用L2正则化,并引Dropout和BN算法,用以消除模型的过拟合问题;上传结果有两种方法:一是调用计算机摄像头拍摄图片,将图片信息转换后上传至OneNET;二是将数字图片输入Keras模型中,获取输出后将识别结果上传至OneNET。 4.项目博客:https://blog.csdn.net/qq_31136513/article/details/134685676
资源推荐
资源详情
资源评论
收起资源包目录
基于OpenCV+CNN+IOT+微信小程序智能果实采摘指导系统-深度学习算法应用(含pytho、JS工程源码)+数据集+模型 (937个子文件)
classifier_3.h5 70KB
xxxtsj_myModel.ipynb 117KB
xxxtsj.ipynb 7KB
xxxtsj_camera.ipynb 4KB
timg.jpg 29KB
index.js 5KB
app.js 1KB
util.js 472B
logs.js 261B
start.js 0B
project.config.json 1022B
app.json 284B
sitemap.json 191B
logs.json 52B
start.json 48B
index.json 27B
024.PNG 920KB
068.PNG 686KB
098.PNG 522KB
077.PNG 488KB
005.PNG 470KB
191.PNG 415KB
212.PNG 404KB
192.PNG 394KB
001.PNG 392KB
006.PNG 380KB
003.PNG 371KB
052.PNG 365KB
040.PNG 356KB
050.PNG 353KB
228.PNG 322KB
161.PNG 319KB
101.PNG 319KB
027.PNG 316KB
008.PNG 313KB
100.PNG 303KB
063.PNG 301KB
028.PNG 300KB
213.PNG 298KB
023.PNG 292KB
087.PNG 287KB
271.PNG 280KB
227.PNG 269KB
035.PNG 268KB
031.PNG 263KB
132.PNG 258KB
313.PNG 253KB
002.PNG 242KB
033.PNG 240KB
036.PNG 230KB
042.PNG 224KB
015.PNG 224KB
029.PNG 209KB
189.PNG 208KB
007.PNG 203KB
093.PNG 202KB
160.PNG 201KB
048.PNG 198KB
117.PNG 197KB
043.PNG 196KB
145.PNG 196KB
287.PNG 193KB
049.PNG 191KB
067.PNG 185KB
082.PNG 183KB
321.PNG 183KB
237.PNG 183KB
105.PNG 182KB
041.PNG 182KB
173.PNG 179KB
174.PNG 176KB
322.PNG 176KB
078.PNG 174KB
142.PNG 173KB
190.PNG 172KB
317.PNG 167KB
217.PNG 167KB
152.PNG 163KB
085.PNG 162KB
247.PNG 160KB
238.PNG 159KB
218.PNG 156KB
104.PNG 155KB
000.PNG 153KB
094.PNG 149KB
099.PNG 149KB
084.PNG 147KB
249.PNG 147KB
156.PNG 146KB
016.PNG 144KB
208.PNG 143KB
122.PNG 143KB
219.PNG 142KB
124.PNG 141KB
210.PNG 140KB
120.PNG 138KB
144.PNG 138KB
316.PNG 138KB
034.PNG 138KB
251.PNG 136KB
共 937 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
- HybirdNeben2024-02-13总算找到了自己想要的资源,对自己的启发很大,感谢分享~
- weixin_378140262024-04-17资源太好了,解决了我当下遇到的难题,抱紧大佬的大腿~
小胡说人工智能
- 粉丝: 1w+
- 资源: 52
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功