import urllib.request
import gevent
from gevent import monkey
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import random
monkey.patch_all()
```python
class App(QWidget):
def __init__(self):
super(App, self).__init__()
self.InitUi()
def InitUi(self):
#设置控件的属性
#绘制描述
self.label_1=QLabel("请输入你要下载图片的地址:")
self.text_1=QLineEdit()
self.btn_1=QPushButton("下载")
#设置布局
hbox=QHBoxLayout()#水平盒子布局
hbox2=QHBoxLayout()
hbox3=QHBoxLayout()
vbox = QVBoxLayout()
grid=QGridLayout()#以方格的形式管理窗口
grid.addWidget(self.label_1,1,0)
grid.addWidget(self.text_1,1,1)
grid.addWidget(self.btn_1,1,2)
vbox.addLayout(hbox)
vbox.addLayout(hbox2)
vbox.addLayout(hbox2)
vbox.addLayout(grid)
#应用窗口布局
self.setLayout(vbox)
#绘制总体框架
self.setGeometry(700,400,500,100)
self.setWindowTitle("图片下载器")
self.setFixedWidth(500)
self.setFixedHeight(100)
self.show()
self.btn_1.clicked.connect(self.download)
其中 self.btn_1.clicked.connect(self.download)是鼠标点击后面的下载按钮会调用后面的下载函数
```python
def download(self):
urladdr=self.text_1.text()
num=random.randint(0,10000)
gevent.joinall([
gevent.spawn(self.downloader,str(num)+".jpg",urladdr)
])
其中urladdr=self.text_1.text()是将使用者在文本框内输入的图片地址赋给一个变量
def downloader(self,img_name,img_url):
req=urllib.request.urlopen(img_url)
img_content=req.read()
with open(img_name,"wb")as f:
f.write(img_content)
self.text_1.clear()
self.text_1.clear():每次下载成功 后会清空文本框
import urllib.request
import gevent
from gevent import monkey
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import random
monkey.patch_all()
class App(QWidget):
def __init__(self):
super(App, self).__init__()
self.InitUi()
def InitUi(self):
#设置控件的属性
#绘制描述
self.label_1=QLabel("请输入你要下载图片的地址:")
self.text_1=QLineEdit()
self.btn_1=QPushButton("下载")
#设置布局
hbox=QHBoxLayout()#水平盒子布局
hbox2=QHBoxLayout()
hbox3=QHBoxLayout()
vbox = QVBoxLayout()
grid=QGridLayout()#以方格的形式管理窗口
grid.addWidget(self.label_1,1,0)
grid.addWidget(self.text_1,1,1)
grid.addWidget(self.btn_1,1,2)
vbox.addLayout(hbox)
vbox.addLayout(hbox2)
vbox.addLayout(hbox2)
vbox.addLayout(grid)
#应用窗口布局
self.setLayout(vbox)
#绘制总体框架
self.setGeometry(700,400,500,100)
self.setWindowTitle("图片下载器")
self.setFixedWidth(500)
self.setFixedHeight(100)
self.show()
self.btn_1.clicked.connect(self.download)
#执行爬虫
def downloader(self,img_name,img_url):
req=urllib.request.urlopen(img_url)
img_content=req.read()
with open(img_name,"wb")as f:
f.write(img_content)
self.text_1.clear()
#创建爬虫
def download(self):
urladdr=self.text_1.text()
num=random.randint(0,10000)
gevent.joinall([
gevent.spawn(self.downloader,str(num)+".jpg",urladdr)
])
if __name__ == '__main__':
app=QApplication(sys.argv)
pp=App()
sys.exit(app.exec_())
1.复制要下载的图片链接,一般是在网页鼠标右键点击图片,选择复制图片地址
2.将复制到的图片地址粘贴在文本框内
3.会将图片下载到该py文件所在的文件夹里,并以随机数命名