python下载并保存图片

臭大佬 2020-03-06 13:47:00 1328
Python 
简介 python下载并保存图片

方式一

代码

# coding:utf-8
# 引入requests模块
import requests

# 使用get方式请求图片链接
imgdata = requests.get('https://www.choudalao.com/images/config/avatar.jpg')
# 新建一个文件并写入响应内容
with open('avatar.jpg','wb') as imgs:
    imgs.write(imgdata.content)
    print('运行完成')

结果

方式二

在 Python 中有一个内置模块拥有一个与上面请求图片并新建文件保存的代码同样功能的方法
——urllib.request.urlretrieve

  1. urllib 是 Python3 中内置的 URL 处理模块,其中包含了一下四个子模块:
  2. urllib.request:用于读取和打开 URL;
  3. urllib.error:包含了 urllib.request 中抛出的异常;
  4. urllib.parse:用于解析 URL;
  5. urllib.robotparser:用于解析网址的 robots.txt 文件;
# coding:utf-8
import urllib.request

url = 'https://www.choudalao.com/images/config/avatar.jpg'
# 传递 urlretrieve()方法予两个参数:图片的源地址 保存文件的文件名
wbdata = urllib.request.urlretrieve(url,'avatar.jpg')

爬取表情包示例

# coding:utf-8
import requests
import urllib.request
from bs4 import BeautifulSoup
# 导入 random(随机数) 模块
import random

# 设置header头部
headers = {
    'Host': 'www.qqbiaoqing.com',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome / 56.0.2924.87 Safari / 537.36',
}
# 定义URl
url = 'http://www.qqbiaoqing.com/bao/'
# 进行http请求
wbdata = requests.get(url, headers=headers).content
soup = BeautifulSoup(wbdata, 'lxml')
# 解析表情包链接
imgs = soup.select("div.item > div.ibd > span > img")
for img in imgs:
    # 遍历表情包,生成随机名称并保存
    imgNmae = str(random.randint(100000, 999999)) + '.gif'
    imgRes = urllib.request.urlretrieve(img.attrs['src'], 'imgs/' + imgNmae)