欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python图片下载器(百度图片)

程序员文章站 2022-05-26 22:29:03
...

之前觉得爬虫很好玩,去网页上面抓取数据感觉很神奇。初次接触在导入包就出现了问题,requests没有导入到程序中,在cmd命令里面输入pip install requests,下载到一半的时候就报错了,辗转反侧,从火狐到谷歌,终于在软件中安装了requests这个包。
代码如下:

# -*- encoding: utf-8 -*-
"""
@Function  : 图片字段下载器(百度图片.jpg)
@Author    : 王育红
@Time2020/08/17
"""
import requests
import re
import os

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

#定义下载图片的方法
def downloadPic(url):
    global n
    result = requests.get(url).text
    pic_url = re.findall('"objURL":"(.*?)",',result,re.S)

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

        try:
            pic = requests.get(each,timeout=5) # 可能有些图片存在网址打不开的情况
        except Exception:  # 出现异常直接跳过
            print("【错误】当前图片无法下载")
            continue # 跳过本次循环
        # 定义变量保存图片的路径
        new = 'E:/Python/Crawler/百度图片下载器/' + words + "/" + "第"+str(n) + "张" +words + ".jpg"

     #这里有两种方法
     #(一)
      #  fp = open(string,'wb')
       # fp.write(pic.content)
        #fp.close()
        
        #()
        with open(new,'wb') as f:
            f.write(pic.content)
            f.close()
        n += 1


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

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

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

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

    print("下载完成!")
  • 根据自己需要的图片进行搜索
    python图片下载器(百度图片)

查看运行结果:

python图片下载器(百度图片)python图片下载器(百度图片)

接着就等待下载了,如果网络有点慢可能要稍微等得久一点,有点儿耐心哈~ 然后就可以在所存的路径里面查看啦。

相关标签: 爬虫