上次均益发了一个最简洁的python下载的图片代码,详情看这篇文章《python 最简洁下载图片的代码》,里面用到的是urllib模块。这个模块是python自带的,在多线程的时候,不是那么好用,容易卡死。
这时我们可以用pycurl这个模块,比urllib好用多了。下面直接贴上代码,根据代码注释修改就可以了。
#coding:utf-8 import pycurl,StringIO #传入图片的下载链接 url = 'http://junyiseo.com/wp-content/uploads/2016/10/6.jpg' c = pycurl.Curl() #通过curl方法构造一个对象 c.setopt(pycurl.FOLLOWLOCATION, True) #自动进行跳转抓取 c.setopt(pycurl.MAXREDIRS,5) #设置最多跳转多少次 c.setopt(pycurl.CONNECTTIMEOUT, 60) #设置链接超时 c.setopt(pycurl.TIMEOUT,260) #下载超时 c.fp = StringIO.StringIO() c.setopt(pycurl.URL, url) #设置要访问的URL c.setopt(c.WRITEFUNCTION, c.fp.write) #回调写入字符串缓存 c.perform() code = c.getinfo(c.HTTP_CODE) #返回状态码 img = c.fp.getvalue() #返回源代码 #保存图片 f = open("./%s" % ("img_filename.jpg",), 'wb') f.write(img) f.close()
靠谱学生兼职网
2016年11月11日 at 上午10:27代码写得不错,学习了。