使用python爬虫爬取一些图片网站的图片保存到本地

本文介绍了一个简单的图片爬虫实现,通过修改正则表达式可以针对不同网站抓取图片,包括获取网页源码、解析HTML、下载图片并保存到指定目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可对一些常见的图片网站进行爬取,对于不同的网站,只需要稍修改parse_html函数中的patern的正则表达式即可。
(该代码参考了网上一些大佬的代码,在此表示感谢,非商用,仅供学习使用!)

import requests
from hashlib import md5
import re
import os

global dir
dir = './yazi' #图片的保存地址


def get_text(url):
    r = requests.get(url)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    return r.text

def parse_html(url, list):
    demo = get_text(url)
    # 将正则表达式编译成正则表达式对象,方便复用该正则表达式
    # ".*?" :匹配任意字符串
    # 如果是不同的网站,需要修改下行的正则表达式
    patern = re.compile('\<img src2="(.*?\.jpg)" alt=', re.S)
    results = re.findall(patern, demo)
    for result in results:
        #result = "https:"+result
        list.append(result)
    return list

def download_image(url):#保存图片链接
    r = requests.get(url)
    r.raise_for_status()
    save_image(r.content)

def save_image(content):#下载图片
    file_path = '{0}/{1}.{2}'.format(dir, md5(content).hexdigest(), 'jpg')#注意斜杠是/
    #format('文件储存地址',哈希算法随机生成子文件名称,'文件格式')
    if not os.path.exists(file_path):#os.path.exists(file_path)判断文件是否存在,存在返回1,不存在返回0
        with open(file_path, 'wb') as f:
            f.write(content)
            f.close()

# 如果文件夹目录不存在,则创建
if not os.path.exists(dir):
        os.mkdir(dir)
        
        
list = []
for i in range(2,8):
    # 爬取的图片网站的网址
    url = "http://sc.chinaz.com/tag_tupian/YaZi_%d.html"%(i+1)
    list = parse_html(url, list)

count = 0
for i in list:
    count = count + 1
    print(i) #输出图片链接
print("一共有"+str(count)+"条数据!")

for i in list:
    download_image(i)
print("下载成功")

运行结果:
在这里插入图片描述
此时在./yazi文件夹下面已经有保存的120张图片了。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值