网络编程
位置:首页>> 网络编程>> Python编程>> python获取网页中所有图片并筛选指定分辨率的方法

python获取网页中所有图片并筛选指定分辨率的方法

作者:YY_姚  发布时间:2021-07-28 04:57:23 

标签:python,图片,分辨率

压测时,图片太少,想着下载网页中的图片,然后过滤指定分辨率,但网页中指定分辨率的图片太少了(见下)
后使用格式工厂转换图片


import urllib.request   # 导入urllib模块
import re     # 导入re模块
import os
from PIL import Image
htmlurl = 'http://www.win4000.com/wallpaper_detail_134824_3.html'
downloadpath = 'C:\\Users\\yaowanjun\\Desktop\\img\\'
def getHTML(htmlurl):
 req = urllib.request.urlopen(htmlurl)
 buf = req.read()
 return buf.decode('utf-8')
def downloadImg(buf):
 req = r'src="(.+?\.jpg)"' #正则表达式,匹配图片格式
 imgreq = re.compile(req) #编译正则表达式
 imglist = re.findall(imgreq, buf)
 # print(imglist)
 x = 0
 if not os.path.isdir(downloadpath):#若没有则创建
   os.makedirs(downloadpath)
 paths = downloadpath
 for imgurl in imglist:
   f = open(paths + str(x) +'.jpg',"wb")  #打开文件
   req = urllib.request.urlopen(imgurl)
   buf = req.read()       #读出文件
   f.write(buf)
   f.close()
   x = x + 1
 return imglist
def saveImg():
 for filenumber in os.walk(downloadpath):
   # print(filenumber[2])
   for files in filenumber[2]:
     # print(files)
     singleimg = Image.open(downloadpath + files)
     singleimg.close()
     #print(singleimg.size, singleimg.width, singleimg.height)
     if singleimg.size == (1920, 1080):
       print(singleimg)
     else:
       os.remove(downloadpath + files)
buf = getHTML(htmlurl)
downloadImg(buf)
saveImg()

执行结果:

指定网页所有图片

python获取网页中所有图片并筛选指定分辨率的方法

不符合指定分辨率的图片删除后

python获取网页中所有图片并筛选指定分辨率的方法

来源:https://blog.csdn.net/weixin_38208401/article/details/78324469

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com