python3 urllib3批量下载图片搜索结果

urllib3与早前版本稍有差异,记录下几个调整的版本(目前只有版本一,关于bug的改进版本后续再贴,有热心的小伙伴也可以提提建议~)

版本一

刚入门,在网上搜刮了一些代码,又调整了一下,可以将百度图片根据某关键字搜到的结果下载到本地,但版本一这段代码会出现如下从错误

  • 下载损害的图片,无法打开
  • 程序卡在某个图片的URL
  • 重复url下载
import re
import urllib3

def getHtml(url):
    http = urllib3.PoolManager()
    r = http.request('GET', url)
    htmlStr=r.data.decode('utf-8')
    print(htmlStr)
    return htmlStr

def getImg(htmlStr):
    reg = r':"(http://[^"]+\.(?:jpg|png|gif))"?'
    imgre = re.compile(reg)
    imglist = imgre.findall(htmlStr)
    saveImage(imglist,'/home/yijie/PycharmProjects/osm/gouwuzhongxin')

def saveImage(imglist,name):
    number = 1
    http = urllib3.PoolManager()

    for imageURL in imglist:
        print(imageURL)
        splitPath = imageURL.split('.')
        fileExt = splitPath.pop()
        fileName = name + "/" + str(number) + "." + fileExt #name是存储图片的路径,number作为图片名

        # 下载单个imageURL的图片
        r = http.request('GET', imageURL)
        data = r.data
        f = open(fileName, 'wb+')
        f.write(data)
        print(u'正在保存的一张图片为:%s', fileName)
        f.close()
        number += 1

    print('\ntotal number of image:%s',(name,number))


if __name__=='__main__':
    s=r'http://image.baidu.com/search/index?ct=201326592&z=0&s=0&tn=baiduimage&ipn=r&word=%E8%B4%AD%E7%89%A9%E4%B8%AD%E5%BF%83%E5%B9%B3%E9%9D%A2%E5%9B%BE&pn=0&istype=2&ie=utf-8&oe=utf-8&cl=2&lm=7&st=-1&fr=&fmq=1508290519080_R&ic=0&se=&sme=&width=0&height=0&face=0'
    html = getHtml(s)
    getImg(html)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,256评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,294评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,539评论 25 709
  • 《致自己》 每一份精致的背后 都有一份不为人知的秘密 茫茫夜空里 听见心跳的声音 渴望的眼神 寻找...
    星星_3abc阅读 406评论 0 3
  • 配置本机的git密钥 ssh-keygen -t rsa 提示输入Enter passphrase (empty ...
    上进青年欢乐多阅读 1,076评论 0 0