- urllib下载图片
- urllib3下载图片
Urllib下载图片
1 from urllib import request 2 import re 3 import os 4 5 # 妹子图首页 下载首页的几张 6 url = 'https://www.mzitu.com' 7 # Request对象添加请求头方法一:数据为字典类型 8 headers = { 9 'User-Agent': 'Mozilla/5.0 (X11; CrOS i686 4319.74.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36 ' 10 } 11 # 创建Request实例 将url和请求头传入 12 req = request.Request(url, headers=headers) 13 14 # 发起连接,返回的是一个对象,不使用代理 15 data = request.urlopen(req) 16 17 # 用read()方法,读取返回对象中的内容,取出每张图片的url 18 img_urls = re.findall("data-original='(.*?)'", data.read().decode()) 19 # 以数字给图片命名 20 name = 1 21 # 根据每张图片的url循环下载 22 for img_url in img_urls: 23 # 每张图片的url 24 print(img_url) 25 # 创建新的Request对象,将url传入 26 req_img = request.Request(url=img_url) 27 # Request对象添加请求头方法二:数据为元组类型 28 req_img.add_header('Referer', url) 29 img_data = request.urlopen(req_img) 30 # 判断是否存在这个目录、是否创建过一次 31 if name == 1 and not os.path.exists('urllib_img_test'): 32 os.mkdir('urllib_img_test') 33 # 判断是否第一次进入文件夹 34 if name == 1: 35 # 进入创建的文件夹 36 os.chdir('urllib_img_test') 37 img_name = str(name) + '.jpg' 38 # 保存图片 39 with open(img_name, 'wb') as f: 40 f.write(img_data.read()) 41 name += 1