Python笔记-从网页抓取图片并保存到本地(简单的正则表达式方
2020-02-22 本文已影响0人
我开心0536
【功能】
从网页抓取图片并保存到本地(python 3.7版本下调试成功)
【特点】
1、本例子较简单,从指定网页中,分析出图片网址并下载到本地
2、如果文件夹路径没有,则自动建立该文件夹路径
3、本代码不判断图片大小,只要是jpg图片,均下载
4、保存下来的图片,按012345的文件名编号,未保留网页原文件名
5、本文涉及正则表达式
从网页抓取图片并保存.jpg
【以下为代码,右上角有复制按钮,可一键复制】
#从网页抓取图片并保存到本地 【我开心 Ver:20200222.001】
import urllib.request #导入各个模块库
import re
import os
import urllib
#开始抓取网页
page = urllib.request.urlopen("https://tieba.baidu.com/p/6240118245") #指定网址
html = page.read().decode('utf-8')
#从网页中提取符合 正则表达式的 图片部分
reg = r'https://[^\s]*?\.jpg' # 指定要抓取的图片的网址规则: https开头,jpg结尾的图片网址。
imgre = re.compile(reg) # 转换成一个正则对象
imglist = imgre.findall(html) # 从整个网页过滤出符合条件的图片地址,放在imgList中
#显示有多少张图片,和具体网址
print('本次共发现图片',len(imglist),'张')
#for i in range(1, len(imglist)):
# print(imglist[i])
#设定图片下载的路径 ,如果没有则创建这个路径
path = 'C:\\temp\\jpg' # 设置图片的保存地址
if not os.path.isdir(path): # 判断有没有此路径,
os.makedirs(path) # 如果没有此路径,则创建
paths = path + '\\' # 路径最后加\,用于后面与文件名相连接
#开始批量下载图片
x = 0 # 声明一个变量赋值,用于后面保存图片时当做文件名
for imgurl in imglist:
urllib.request.urlretrieve(imgurl, '{0}{1}.jpg'.format(paths, x)) # 打开imgList,下载图片到本地
print('图片',x,'开始下载: ',imgurl,' ==> 保存至{0}{1}.jpg'.format(paths, x)) #显示时,变量格式化
x = x + 1
print("图片下载完成 【我开心 Ver:20200222.001】")