python3 下载图片_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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>