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】")
上一篇 下一篇

猜你喜欢

热点阅读