前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用python爬虫制作图片下载器(超有趣!)

用python爬虫制作图片下载器(超有趣!)

作者头像
大数据梦想家
发布2021-01-22 16:02:28
6950
发布2021-01-22 16:02:28
举报

这几天小菌给大家分享的大部分都是关于大数据,linux方面的"干货"。有粉丝私聊小菌,希望能分享一些有趣的爬虫小程序。O(∩_∩)O哈哈,是时候露一手了。今天给大家分享的是一个适合所有爬虫爱好者训练的一个有趣的项目—百度图片下载器。这个下载器的优势在于,可以根据你自定义关键字的输入,去百度图片上快速的获取相关的图片,并保存在本地,可谓是十分之便捷了~话不多说,直接上代码ヾ(●´∀`●)

代码语言:javascript
复制
# -*- encoding: utf-8 -*-

"""
@File    : 图片自动下载器(百度图片).py
@Time    : 2019/10/22 8:38
@Author  : 封茗囧菌
@Software: PyCharm
      
      转载请注明原作者
	  创作不易,仅供分享

"""
import requests
import re
import os

#   定义一个变量用来保存下载图片的张数
i = 1

#  定义下载图片的方法
def downloadPic(url):
    global i  # 使用global声明这是一个全局变量,方法内无法直接使用全局变量
    html = requests.get(url).text
    pic_url = re.findall('"objURL":"(.*?)",', html, re.S)

    for each in pic_url:
        print("正在下载第" + str(i) + "张图片,图片地址:" + each)

        try:
            pic = requests.get(each, timeout=5)  # 可能有些图片存在网址打不开的情况,这里设置一个5秒的超时控制
        except Exception:  # 出现异常直接跳过
            print("【错误】当前图片无法下载")
            continue  # 跳过本次循环

        #  定义变量保存图片的路径
        string = 'G:/Python/Crawler/百度图片下载器/' + word + "/" + str(i) + ".jpg"
        fp = open(string, 'wb')
        fp.write(pic.content)
        fp.close()
        i += 1


if __name__ == '__main__':  # 主程序
    word = input("请输入您想要下载的图片:")

    #  先根据搜索的关键字判断存放该类别的文件夹是否存在,不存在则创建
    road = "G:/Python/Crawler/百度图片下载器/" + word

    if not os.path.exists(road):
        os.mkdir(road)

    #  根据输入的内容构建url列表推导式【前21页内容】
    urls = [
        'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=' + word + '&ct=201326592&v=flip&pn={}'.format(
            str(i)) for i in range(0, 400, 20)]

    for url in urls:
        downloadPic(url)

    print("下载完成!")

运行效果图如下: 我们先输入想要查找的关键字,然后回车,切换到指定的目录下,就会发现一张张图片像蜂拥似的出现在你的本地目录上(当然,速度有多快取决于你的网速)。上面的爬虫代码中,小菌设置的是百度图片中大概20页的内容,也就是以前一千两百多张图。小伙伴们可根据需求自行修改。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

因为该程序的代码本身比较简单,只要是爬虫爱好者基本都能看得懂,因此小菌就不再详细往下讲。本次的分享就到这里了,有疑惑的小伙伴或者有什么好的建议可以在评论区积极留言,小菌都会尽量回复。认为有帮助的小伙伴们不要忘了点赞,如果再来个关注就更好了(灬°ω°灬)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档