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

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

# -*- 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页的内容,也就是以前一千两百多张图。小伙伴们可根据需求自行修改。

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

  • 74
    点赞
  • 142
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 35
    评论
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大数据梦想家

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

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

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

打赏作者

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

抵扣说明:

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

余额充值