本帖最后由 bilibini 于 2023-12-16 22:06 编辑
美图下载器
- 软件说明:下载美图,开源可以随意修改代码打包
- 软件版本:0.0.0.11
- 软件平台:Windows
- 软件功能:下载图片
更新
V0.0.0.6[2023年11月3日]:- 优化图片加载速度和显示
- 新增图片爬取
- 优化图片加载与提示
V0.0.0.9[2023年11月8日]:
V0.0.0.11[2023年12月16日]:
使用
- 单击鼠标左键可以查看图片
- 单击鼠标右键可以下载图片
- 单击软件内部右下角 搜索图标 打开搜索窗口,可搜索图片
- 进入查看图片窗口,可以按住·Ctrl+鼠标滚轮·放大缩小查看图片
- 图片下载目录为程序所在的同级目录下的download文件夹
软件主界面
搜索页面
查看图片页面
核心代码解析
[Python] 纯文本查看 复制代码 #下面是以前V0.0.0.4版本返回图片数据的函数,当时为了省力使用字符串拼接返回图片数据
def getImgSrc(iNumber=1):
iNumber=int(iNumber)
url=cryptocode.decrypt('RPmitKoyxkGWT3rNdSIdllrKpBQkM2iXv4Gk*3fceH6rrhEDqRfiurc1k/g==*A/Ria0ZdrIKsY1wDa9zFJQ==*1ehaomVX+IvEYaQ4AtJtSQ==','bilibini')
head={
"User-Agent": UserAgent().random
}
res = requests.get(f"{url}/list-{iNumber}.html",headers=head,verify=False)
soup = BeautifulSoup(res.text, 'html.parser')
imgList=soup.select("article > div > div.zhuanti.whitebg.waterfall > ul > li > i > a > img")
imgSrcList=[img.attrs['src'] for img in imgList]
return '||'.join(imgSrcList)
#下面是最新V0.0.0.6版本返回图片数据的函数,同时爬取该网站的PC与手机端的图片
#使用字典存储单个图片数据,添加到数组中返回数据
def getimgList_1(iNumber=2):
iNumber=int(iNumber)+1
imgjsonlist=[]
try:
def get(url):
head={
"User-Agent": UserAgent().random
}
res = requests.get(url,headers=head,verify=False)
res.encoding='gbk'
soup = BeautifulSoup(res.text, 'html.parser')
imgList=soup.select("#main > div.list > ul > li > a > img")
imgDataList=[]
for img in imgList:
imgData={
'url':'',
'smallurl':'',
'title':'小陆离 可爱女孩 可爱 护眼 一手托着下巴的美女壁纸'
}
imgData['smallurl']=img.attrs['src']
imgData['title']=img.attrs['alt']
imgData['url']=re.findall(r'(.*)small.*',img.attrs['src'])[0]+re.findall(r'.*small([0-9A-Za-z]{11}).*',img.attrs['src'])[0]+'.jpg'
imgDataList.append(imgData)
return imgDataList
url1=f'http://www.某某网站.com/meinv/index_{iNumber}.htm'
url2=f'http://www.某某网站.com/shouji/meinv/index_{iNumber}.htm'
imgjsonlist=get(url1)+get(url2)
except:
imgjsonlist=[{
'url':'err.png',
'smallurl':'err.png',
'title':'数据加载错误'
}]
return imgjsonlist
def getImgSrc(iNumber=1):
iNumber=int(iNumber)
imgDataList=getimgList_1(iNumber)
random.shuffle(imgDataList)
return imgDataList
最新的爬取代码中可以包裹更多的信息:{图片原链接,缩略图链接,标题},加载时使用缩略图,优化图片加载的速度。
其实不单只修改了爬虫部分,还修改了前段展示部分的代码,这里也简单提一下吧。
主页图片使用loading="lazy",进行懒加载再一次变得顺滑一些。
背景也单独加上z-index属性防止出现元素图层间闪动。
图片查看页面由“electron”替换为“web.form”加快窗口创建速度。
还有一些小修小改可以具体看项目代码。
下载(与源码)
已经打包好的程序,下载就可用(最新版本):https://wwf.lanzoul.com/iiRPh1i65hra
开源地址:https://github.com/bilibini/Lovely_Image_Downloader
|