爬虫神器!使用Python一键下载网页图片,省时高效!

本文介绍了一种使用Python爬虫技术,通过自定义bag库和re库实现从指定网页批量下载图片的方法,包括准备工作、代码实现及异常处理,为数据分析和机器学习提供图片数据支持。
摘要由CSDN通过智能技术生成

引言

爬虫技术在当今信息时代中扮演着重要的角色,可以自动化获取互联网上的数据。本教程将围绕你提供的Python爬虫代码展开,旨在实现自动下载图片的功能。通过这个示例,你将学习如何利用爬虫技术批量获取网页中的图片,并将其保存到本地。这项功能的应用广泛,包括数据分析、图像处理、机器学习等领域。通过学习本教程,你将掌握使用Python爬虫技术下载图片的方法,节省时间和劳动力,并为后续应用提供有价值的图片数据支持。接下来,让我们一起深入了解如何实现高效的图片获取吧!

准备工作

该爬虫需要用到工具包 bag和re ,其中bag工具包需要自己实现,这里只介绍爬取图片原理

实现代码

#!/usr/bin/env python3
# coding:utf-8
import bag
import re


def main():
    url = r'https://www.kanxiaojiejie.net/14847/'
    urls = get_urls(url)
    for link in urls:
        get_img(link)


def get_urls(url):
    web.get(url)
    resp = web.page_source
    pattern = re.compile(r'decoding="async" src="(.*?)"', re.S)
    urls = re.findall(pattern, resp)
    return urls


def get_img(url):
    try:
        resp = session.get(url)
        with open('./img' + '//' + url.split('/')[-1], mode='wb') as file:
            file.write(resp.content)
    except Exception as e:
        print('图片下载异常!', e)


if __name__ == '__main__':
    web = bag.Bag.web_debug()
    session = bag.session.create_session()
    session.headers['Referer'] = r'https://www.kanxiaojiejie.net/'
    main()

通过该代码,我们可以自动获取指定网页中的图片,并保存到本地。

首先,在准备工作部分,代码引入了必要的库和工具。其中,bag是一个自定义的库,用于简化爬虫操作。通过使用bag.Bag.web_debug()bag.session.create_session(),我们创建了一个网页操作对象和一个会话对象,用于访问目标网页并进行图片下载。

接下来,在主函数main()中,我们传入了目标网页的URL,并调用get_urls()函数来获取目标网页中的图片链接。这里使用了正则表达式来抓取链接,具体的正则表达式可以根据实际情况进行调整。

get_urls()函数中,我们使用web.get(url)来访问目标网页,并通过web.page_source获取网页的源代码。然后,使用正则表达式提取图片链接,并将这些链接保存在一个列表中。

接着,在main()函数中的循环中,我们调用get_img()函数来下载每个图片。在get_img()函数中,我们使用会话对象session发送HTTP请求,获取图片的内容,并将其保存到本地。这里需要注意异常处理,如果下载过程中出现异常,会打印出相应的错误信息。

结果展示

结语 

如果你觉得本教程对你有所帮助,不妨点赞并关注我的CSDN账号。我会持续为大家带来更多有趣且实用的教程和资源。谢谢大家的支持!

  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FLK_9090

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值