Python版本是3.3.2 主要就是 urllib相对于2.x有很大变化
# -*- coding:utf-8 -*- import urllib.request path = "D:\\Download" url = "http://pic2.sc.chinaz.com/files/pic/pic9/201309/apic520.jpg" name ="D:\\download\\1.jpg" #保存文件时候注意类型要匹配,如要保存的图片为jpg,则打开的文件的名称必须是jpg格式,否则会产生无效图片 conn = urllib.request.urlopen(url) f = open(name,'wb') f.write(conn.read()) f.close() print('Pic Saved!')
很简单,打开个url链接,然后save到某个文件夹下就可以了。
有时候不如不想输入路径,那就需要用os模块来修改当前路径
os.chdir("D:\\download") os.getcwd()这样保存的文件就只需要名字就可以了
f = open('1.jpg','wb')这上面的url是给定的,只能下载一张图片,如果要是批量下载,就需要用循环来判断不同的url,
下面是从其他地方看到的一个例子,就是把图片url中的图片名字修改,然后就可以循环保存了,不过也是先确定了某个url
来源:http://www.oschina.net/code/snippet_1016509_21961 开源中国社区,自己修改的地方是提出了相同代码def了个函数
import os import urllib.request def rename(name): if len(name) == 2: name = '0' + name + '.jpg' elif len(name) == 1: name = '00' + name + '.jpg' else: name = name + '.jpg' return name os.chdir("D:\\download") os.getcwd() count = 1 name=str(count) name = rename(name) print(name) url = 'http://bgimg1.meimei22.com/list/2012-5-24/2/sa' + name while count < 15: a = urllib.request.urlopen(url) f = open(name, "wb") f.write(a.read()) f.close() print(url + ' Saved!') count = count + 1 name=str(count) name = rename(name) print(name) url = 'http://bgimg1.meimei22.com/list/2012-5-24/2/sa' + name try: a = urllib.request.urlopen(url) pass except (Exception) as e: print(e) else: pass else: print(url + ' not found') print(a.status)当然也可以自己建立http连接,然后动态获取.jpg的图片
url = "desk.zol.com.cn" conn = http.client.HTTPConnection(url) conn.request("GET", "/dongman/") r = conn.getresponse() print (r.status, r.reason) data1 = r.read()#.decode('utf-8') #编码根据实际情况酌情处理开始时候写的老是提示目标计算机主动拒绝, 后来才发现我选的函数是HTTPSConnection() ,当然会被拒绝了,这一点应该注意,要选择HTTPConnection()