python根据关键词下载图片_教你如何用 Python 下载你偶像的图片

c384cb46656a4530b935c0b2f910e904

刘诗诗

前言

这是一个比较简单的爬虫脚本,可以根据用户输入的关键词搜索下载指定数量的图片,比如你喜欢某个明星则输入名字:

7953ba8e320246e0a32d5657cd6d1ce0

输入关键词

脚本自动检测出图片数量,并可以指定下载图片数量,当然也要输入一个文件夹的名字,图片会全部存入这个文件夹

a0b9dc8d35544851ad874cbc2a8340f3

指定数量和文件夹名称

然后就会自动开始下载,而且还会打印进度哦

d7f680d78da3472ca38fa4867689105a

开始下载

下面直接贴上源代码,如果有不懂的小伙伴可以私信我哦~~

首先先导入我们需要的库

import reimport requestsfrom urllib import errorfrom bs4 import BeautifulSoupimport os

定义一些全局变量

num = 0 numPicture = 0file = ''List = []

检测图片数量

def Find(url):    global List    print('正在检测图片总数,请稍等.....')    t = 0    i = 1    s = 0    while t < 1000:        Url = url + str(t)        try:            Result = requests.get(Url, timeout=7)        except BaseException:            t = t + 60            continue        else:            result = Result.text            pic_url = re.findall('"objURL":"(.*?)",', result, re.S)  # 先利用正则表达式找到图片url            s += len(pic_url)            if len(pic_url) == 0:                break            else:                List.append(pic_url)                t = t + 60    return s

下载图片

def dowmloadPicture(html, keyword):    global num       pic_url = re.findall('"objURL":"(.*?)",', html, re.S)  # 先利用正则表达式找到图片url        print('找到关键词:' + keyword + '的图片,即将开始下载图片...')    for each in pic_url:        print('正在下载第' + str(num + 1) + '张图片,图片地址:' + str(each))        try:            if each is not None:                pic = requests.get(each, timeout=7)            else:                continue        except BaseException:            print('错误,当前图片无法下载')            continue        else:            string = file + r'' + keyword + '_' + str(num) + '.jpg'            fp = open(string, 'wb')            fp.write(pic.content)            fp.close()            num += 1        if num >= numPicture:            return

程序入口

if __name__ == '__main__':      # 主函数入口        word = input("请输入搜索关键词(可以是人名,地名等): ")    print('经过检测%s类图片共有%d张' % (word, tot))    numPicture = int(input('请输入想要下载的图片数量 '))    file = input('请建立一个存储图片的文件夹,输入文件夹名称即可')    y = os.path.exists(file)    if y == 1:        print('该文件已存在,请重新输入')        file = input('请建立一个存储图片的文件夹,)输入文件夹名称即可')        os.mkdir(file)    else:        os.mkdir(file)    t = 0    tmp = url    while t < numPicture:        try:            url = tmp + str(t)            result = requests.get(url, timeout=10)            print(url)        except error.HTTPError as e:            print('网络错误,请调整网络后重试')            t = t + 60        else:            dowmloadPicture(result.text, word)            t = t + 60    print('当前搜索结束,感谢使用')    print('猜你喜欢')

都看到这里了给个赞吧~~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值